题目描述

题目分析

题目非常简单,但是我还是wa了几发,对不起,我太菜了。我的想法是把K转换为数组然后用大整数加法处理。但是因为太久没有写了导致写了好久。

class Solution {public:void add(vector<int> &A, vector<int> &B) {int len_A = A.size();int len_B = B.size();for (int i = 0; i < len_B; ++i) {A[i] += B[i];if (i + 1 >= A.size() ) {A.push_back(0);}if (A[i] >= 10) {A[i+1] += 1;A[i] -= 10;}}if (len_B < len_A) {for (int i = len_B - 1; i < len_A; ++i) {if (i + 1 >= A.size() ) {A.push_back(0);}if (A[i] >= 10) {A[i+1] += 1;A[i] -= 10;}}}if (A[A.size() - 1] == 0) {A.pop_back();}}vector<int> addToArrayForm(vector<int>& A, int K) {vector<int> B;do {B.push_back(K%10);K/=10;} while(K);reverse(A.begin(), A.end());add(A, B);reverse(A.begin(), A.end());return A;}
};

然而题解的解法更加优雅明快,我还是有些局限自己的思路:

  • 没有必要把k先转换为数组的形式,直接处理即可
  • 在两种情况需要处理差不多的代码时活用短路运算符||往往有简化代码的效果
class Solution {public:vector<int> addToArrayForm(vector<int> &A, int K) {vector<int> res;int n = A.size();for (int i = n - 1; i >= 0 || K > 0; --i, K /= 10) {if (i >= 0) {K += A[i];}res.push_back(K % 10);}reverse(res.begin(), res.end());return res;}
};//作者:LeetCode-Solution
//链接:https://leetcode-cn.com/problems/add-to-array-form-of-integer/solution/shu-zu-xing-shi-de-zheng-shu-jia-fa-by-l-jljp/
//来源:力扣(LeetCode)
//著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

每日一题:leetcode989.数组形式的整数加法相关推荐

  1. LeetCode简单题之数组形式的整数加法

    题目 对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组.例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]. 给定非负整数 X 的数组形式 A,返回整数 X+ ...

  2. 989. 数组形式的整数加法

    链接:989. 数组形式的整数加法 题解: class Solution {public:vector<int> addToArrayForm(vector<int>& ...

  3. Leetcode 989. 数组形式的整数加法 (每日一题 20210826 同类型题)

    对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组.例如,如果 X = 1231,那么其数组形式为 [1,2,3,1].给定非负整数 X 的数组形式 A,返回整数 X+K 的数 ...

  4. Leetcode每日一题:989.add-to-array-form-of-integer(数组形式的整数加法)

    这道题还是要写一下 思路:首先想到的就是把数组转换成数字,直接相加,因为A的长度只有10000,但后来明显越界了,行不通:后来想到把K逐位加到A上,但很复杂,最终采用以下方法: vector<i ...

  5. 2021-12-11 Leetcode 989.数组形式的整数加法

    第一种方法:转化成具体的数字硬做 class Solution {public:vector<int> addToArrayForm(vector<int>& num, ...

  6. 989-数组形式的整数加法

    前言 Weekly Contest 123的 数组形式的整数加法: 对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组.例如,如果 X = 1231,那么其数组形式为 [1,2 ...

  7. 1.6编程基础之一维数组 10大整数加法

    1.6编程基础之一维数组 10大整数加法 OpenJudge - 10:大整数加法 1168:大整数加法 信息学奥赛一本通(C++版)在线评测系统 P1601 A+B Problem(高精) A+B ...

  8. 从一个数组中找出最接近目标_LeetCode每日一题 | 转变数组后最接近目标值的数组和...

    题目来源:LC1300 这道题目是一道比较经典的二分查找题. 我们注意到,当value越大时,数组之和越大,当value越小时,数组之和越小.因此,我们可以利用数组之和是value的单调递增函数这个性 ...

  9. 将给出的整数x翻转_每日一题:1.罗马数字转整数

    罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...

最新文章

  1. DPM 2007SRT及DPM 2010 BMR祼金属还原总结
  2. python培训好学吗-开平北大青鸟:Python培训怎么选?Python好学吗?
  3. 【数字信号处理】线性时不变系统 LTI “ 输入 “ 与 “ 输出 “ 之间的关系 ( 周期性分析 | 卷积运算规律 | 交换律 | 结合律 | 分配率 | 冲击不变性 )
  4. js按键处理demo
  5. 英特尔530和535哪个好_详细介绍2020版联想小新Air 14酷睿版和锐龙版怎么选,哪款好...
  6. JavaScript new对象的四个过程
  7. 用php+ajax+echarts.js 实现统计每分钟答题曲线图
  8. 对acm icpc 的随笔——01
  9. MarkdownPad 汉化破解(含下载地址)
  10. 实例化Model的三种方式
  11. [Web开发] 如何改变IE滚动条的颜色
  12. 数据结构之单链表的整表创建头插法
  13. 简易呼吸灯c语言程序,51单片机(呼吸灯)c语言.doc
  14. Ubuntu安装微软雅黑字体
  15. 三四线城市咖啡店的光荣与梦想
  16. 高考全国卷导数题分类
  17. Eason's concert
  18. 天翼云RDS数据库如何修改数据库参数
  19. UI设计之logo制作基本方法
  20. 微速(微锐) 与 打码工作

热门文章

  1. WebStrom Sass 编译配置 windows
  2. POJ 3468 A Simple Problem with Integers(线段树:区间更新)
  3. 九度OJ1486 /POJ 1029/2012北京大学研究生复试上机
  4. linux find prune排除某目录或文件
  5. Ajax_ASP.NET 添加 Ajax 和客户端功能_01
  6. [SlickEdit] SlickEdit支持目录别名FTP控件更新
  7. XML基本知识(三)
  8. android fragmentactivity fragment,Android:Activity与Fragment通信(99%)完美解决方案
  9. 哈工大未来计算机院士,中国双一流大学拥有院士校友数排名,这是真实力!哈工大依然很强...
  10. 咸宁省2021年模拟高考成绩查询怎么查,2021咸宁市地区高考成绩排名查询,咸宁市高考各高中成绩喜报榜单...