leetcode Plus One
来源:互联网 发布:handler源码解析 编辑:程序博客网 时间:2024/06/02 17:29
刚开始看这道题的时候,都没看懂,(⊙﹏⊙b汗)后来明白题意是
给定一个十进制数,用数组表示每一位,要求返回加一后的结果,存在一种特殊的情况就是,每一位都是9的时候,加1会使总位数多1,这时需要新开辟一个vector变量存数,其他情况不改变位数。
模拟大数的加法,当没有进位的时候就可以弹出循环。
特殊考虑各个位数就是9的情况,加一后会多出一位,即结果是1加上len个0,len是digits的长度。
class Solution {public: vector<int> plusOne(vector<int> &digits) { int n = digits.size(); int i = 0; for(;i<n;i++) { if(digits[i] != 9) break; } if(i == n) { vector<int> res; res.push_back(1); for(i=0;i<n;i++) { res.push_back(0); } return res; } int carry = 1; for(i = n-1;i>=0;i--) { <span style="background-color: rgb(255, 255, 102);"> //这里注意,digit和carry的计算顺序不可更改!必须先计算和,再计算进位</span>
<span style="background-color: rgb(255, 255, 102);"><span style="white-space:pre"></span> // 也必须用一个新变量暂存模10之后的和!因为下面计算carry的时候要用到原来的digits[i]</span> int digit = (digits[i]+carry)%10; carry = (digits[i]+carry)/10; digits[i] = digit; if(carry == 0) break; } return digits; }};
0 0
- LeetCode: Plus One
- LeetCode Plus One
- [Leetcode] Plus One
- LeetCode: Plus One
- leetcode 33: Plus One
- [LeetCode] Plus One
- [leetCode] Plus One
- 【leetcode】Plus One
- [LeetCode]Plus One
- [leetcode]Plus One
- LeetCode-Plus One
- [leetcode] plus one
- LeetCode - Plus One
- [LeetCode] Plus one
- LeetCode:Plus One
- leetcode之Plus One
- leetcode plus one
- LeetCode | Plus One
- 数据的交换输出
- rysnc和intotify实现数据同步
- Qt 多线程学习
- 如何用Tomcat和Openssl构建HTTPS双向认证环境(HTTPS客户端认证)
- iOS开发笔记之五——Xcode 6.0 Beta编译工程时可能遇到的问题及参考解决方案
- leetcode Plus One
- 判断是不是IE的js代码
- coco2dx 3.0以后最box2d和chipmunk这两个物理引擎进行了封装,使用起来非常的便利。
- 数组运用-1075
- mybatis在xml文件中处理大于号小于号的方法
- Hive操作语句的使用实例讲解
- POSIX:TMR间隔定时器
- java.lang.IllegalStateException: attempt to re-open an already-closed object
- hdoj.2045 不容易系列之(3)—— LELE的RPG难题 20140726