LeetCode简单题之数组形式的整数加法
题目
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。
给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。
示例 1:
输入:A = [1,2,0,0], K = 34
输出:[1,2,3,4]
解释:1200 + 34 = 1234
示例 2:
输入:A = [2,7,4], K = 181
输出:[4,5,5]
解释:274 + 181 = 455
示例 3:
输入:A = [2,1,5], K = 806
输出:[1,0,2,1]
解释:215 + 806 = 1021
示例 4:
输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
输出:[1,0,0,0,0,0,0,0,0,0,0]
解释:9999999999 + 1 = 10000000000
提示:
1 <= A.length <= 10000
0 <= A[i] <= 9
0 <= K <= 10000
如果 A.length > 1,那么 A[0] != 0
来源:力扣(LeetCode)
解题思路
这个题乍一看十分简单,可以直接转换掉数组然后再转换回来。
class Solution:def addToArrayForm(self, num: List[int], k: int) -> List[int]:p=0s=0for i in num[::-1]:s+=i*10**pp+=1s+=ktemp=list(str(s))for i in range(len(temp)):temp[i]=int(temp[i])return temp
但是这样做会导致开销变大,耗费时间。所以对于这种加法题还是老老实实模拟的好。
class Solution:def addToArrayForm(self, num: List[int], k: int) -> List[int]:k=str(k)n1=len(num)n2=len(k)#补齐‘0’if n1>n2:k='0'*(n1-n2)+kelse:for i in range(n2-n1):num.insert(0,0)flag=0 #进位标志for i in range(len(k))[::-1]:if num[i]+int(k[i])+flag<10:num[i]=num[i]+int(k[i])+flagflag=0else:num[i]=(num[i]+int(k[i])+flag)%10flag=1if flag==1:num.insert(0,1)return num
LeetCode简单题之数组形式的整数加法相关推荐
- 989. 数组形式的整数加法
链接:989. 数组形式的整数加法 题解: class Solution {public:vector<int> addToArrayForm(vector<int>& ...
- 每日一题:leetcode989.数组形式的整数加法
题目描述 题目分析 题目非常简单,但是我还是wa了几发,对不起,我太菜了.我的想法是把K转换为数组然后用大整数加法处理.但是因为太久没有写了导致写了好久. class Solution {public ...
- Leetcode 989. 数组形式的整数加法 (每日一题 20210826 同类型题)
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组.例如,如果 X = 1231,那么其数组形式为 [1,2,3,1].给定非负整数 X 的数组形式 A,返回整数 X+K 的数 ...
- Leetcode每日一题:989.add-to-array-form-of-integer(数组形式的整数加法)
这道题还是要写一下 思路:首先想到的就是把数组转换成数字,直接相加,因为A的长度只有10000,但后来明显越界了,行不通:后来想到把K逐位加到A上,但很复杂,最终采用以下方法: vector<i ...
- LeetCode简单题之数组异或操作
题目 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素 ...
- LeetCode简单题之数组序号转换
题目 给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号. 序号代表了一个元素有多大.序号编号的规则如下: 序号从 1 开始编号. 一个元素越大,那么序号越大.如果两个元素相等, ...
- LeetCode简单题之数组的度
题目 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度. ...
- LeetCode简单题之数组元素积的符号
题目 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 . 如果 x 是负数,返回 -1 . 如果 x 是等于 0 ,返回 0 . 给你一个整数数组 nu ...
- LeetCode简单题之数组中两元素的最大乘积
题目 给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值. 请你计算并返回该式的最大值. 示例 1: 输入:nums = ...
最新文章
- Vim - 容易忘记但又比较常用的操作 (之一)
- 第一章:1.2.3 LTI系统研究方法与本章小结
- 记录一次Socket异常:java.net.SocketException: Connection reset
- boost::geometry::model::box用法的测试程序
- Docker Centos 7.X部署Mysql并修改编码
- 解决react-native 运行报错:Entry, :CFBundleIdentifier, Does Not Exist
- 实验5: IOS的升级与恢复
- json字符串与json对象之间的转换
- matlab图像边缘检测分析
- 【LeetCode笔记】剑指 Offer 57- II. 和为 s 的连续正数序列(Java、滑动窗口、二刷)
- android10无法获取ssid,解决Android 8.0和9.0无法获取SSID (unknow ssid)
- ROS学习笔记(一)——软件版本的选择
- UVALive - 7147 (数学)
- windows系统设置定时开关机的方法
- 本地硬盘如何重装系统Win11?
- Flutter仿学习强国填空题
- 合并两个有序数组,合并之后保持有序
- 软件设计模式-门面设计模式
- tpshop商城web测试环境
- 虚拟机下装msdos操作系统,再安装borlandc
热门文章
- Golang TDD实践报告:快速排序Quick Sort
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
- 2022-2028年中国阻燃母料行业市场深度分析及发展规模预测报告
- colab找不到模块 no name
- 函数的渐近的界阶的比较
- pytorch之Tensor与Variable的区别
- java锁(公平锁和非公平锁、可重入锁(又名递归锁)、自旋锁、独占锁(写)/共享锁(读)/互斥锁、读写锁)
- 模型压缩95%:Lite Transformer,MIT韩松等人
- OPPO小游戏vConsole开启方法
- C++ string字符串的比较是否相等