leetcode 66(plus one)
2016-05-26 22:10
295 查看
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. 例如:数组{1,2,3},加一以后为{1,2,4}。数组{9}加一以后为{1,0}。 方法一:开辟新的空间。
vector<int> plusOne(vector<int>& digits) { vector<int> res; if (digits.empty()) res.push_back(1); res.resize(digits.size()); int flag = 1; for (int i = digits.size() - 1; i >= 0; --i) { int val = digits[i] + flag; if (val >= 10) { res[i] = val - 10; } else { flag = 0; res[i] = val; } } if (flag) { res.push_back(0); for(int i = res.size() - 1; i > 0; --i) { res[i] = res[i - 1]; } res[0] = 1; } return res; }方法二:代码简短,且不开辟额外的空间。
vector<int> plusOne(vector<int>& digits) { int len = digits.size(); for(int i = len - 1; i >= 0; --i) { if(digits[i] == 9) { digits[i] = 0; } else { digits[i]++; return digits; } } digits[0] = 1; digits.push_back(0); return digits; }
相关文章推荐
- Leetcode之reorder-list
- 3.2.4 FrameLayout(帧布局)
- Codeforces Round #354 (Div. 2) D Theseus and labyrinth
- WIN8/8.1/10换系统常见的几个问题
- Android Scroll分析 (二) 教你使用七种方法实现滑动
- 研究4.4的进程的保活
- ssl简单配置
- 关于如何使用websocket 接收并显示图片或者操作二进制
- 编程之美-数组除法
- Codeforces Round #354 (Div. 2) C Vasya and String(尺取法二分)
- 《Head First C#》学习 ---第二章总结
- iOS开发中使用平率很高的宏定义
- bash简单命令扩展
- DEDECMS之八 漏洞错误和疑难杂症
- 艾宾浩斯记忆曲线
- EndNote使用方法
- codeforces 297D Color the Carpet(构造)
- Codeforces Round #354 (Div. 2) B Pyramid of Glasses(模拟)
- 队列的基本实现
- JMS介绍【转载】