【一天一道LeetCode】#66. Plus One
2016-05-27 16:11
183 查看
一天一道LeetCode
(一)题目
Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
(二)解题
用vector表示的非负数,实现加1。题目很简单,但细节上还是需要注意。
class Solution { public: vector<int> plusOne(vector<int>& digits) { int len = digits.size(); bool iscarry = true; while(len--) { if(iscarry) { int sum = digits[len]+1; digits[len] = sum%10; if(sum<10) iscarry = false; //考虑进位问题 } else break; } if(iscarry) //最高位的进位 //1、digits.insert(digits.begin(),1);用insert,执行时间5ms { //2、用下面方法执行时间4ms digits.push_back(0); copy(digits.begin(),digits.end(),digits.begin()+1); digits[0] = 1; } return digits; } };
相关文章推荐
- 【一天一道LeetCode】#66. Plus One
- 28. SpringMVC_重定向
- Spark 倾斜连接
- Duilib中系统消息在自己窗口类的使用
- 包
- 理解CALayer中position与anchorPoint属性
- Shiro的Demo示例
- Nomachine AWS RHEL7 & Ubuntu Remote desktop connection
- Unix & Linux 笔记(10)
- SparkStreaming数据源Flume
- 由__futex_syscall3略微展开
- 移动无线网络参数及速率
- 上凹还是下凹,叫法相反的凹函数 Concave Upward and Downward
- sqlserver 根据旧表创建新表
- linux 内存释放命令
- 查找三个“水王”
- Yii 利用layer删除数据
- 找水王2
- 包
- 包