[Leetcode 66, Easy] Plus One
2013-11-07 06:50
381 查看
Problem:
Given a number represented as an array of digits, plus one to the number.
Analysis:
本题的解法实现一般加法的规则。要点是模拟满10进1的规则。进位分两种情况:某一位数字不是9,以及所有的数字都是9。用一个循环从最后一位开始循环,直到遇到不是9的数字或者指标变成-1。对于第二种情况,需要在原序列头部插入一个1。
算法时间复杂性是O(n),空间复杂性是O(1)。
Soutions:
C++:
Given a number represented as an array of digits, plus one to the number.
Analysis:
本题的解法实现一般加法的规则。要点是模拟满10进1的规则。进位分两种情况:某一位数字不是9,以及所有的数字都是9。用一个循环从最后一位开始循环,直到遇到不是9的数字或者指标变成-1。对于第二种情况,需要在原序列头部插入一个1。
算法时间复杂性是O(n),空间复杂性是O(1)。
Soutions:
C++:
vector<int> plusOne(vector<int>& digits) { if(digits.empty()) { digits.push_back(1); return digits; } int last_index = digits.size() - 1; for(; last_index >= 0; --last_index) { digits[last_index] += 1; if(digits[last_index] < 10) break; digits[last_index] = 0; } if(last_index == -1) digits.insert(digits.begin(), 1); return digits; }
相关文章推荐
- LeetCode】66.Plus One(easy)解题报告
- Leetcode 66. Plus One (Easy) (cpp)
- LeetCode-66-Plus One(水题/数值计算)-Easy
- LeetCode66. Plus One-python(easy)
- 【LeetCode】(66)Plus One (Easy)
- LeetCode 66. Plus One(加1)
- LeetCode-66.Plus One
- 【leetcode】66. Plus One
- [Leetcode从零开刷]66. Plus One
- leetcode-66 plus one
- LeetCode 66. Plus One(加1)
- leetcode 66. Plus One
- leetcode 66:plus one
- leetCode 66. Plus One 数组
- 2018.3.12 leetcode打卡 #66 plus one
- Leetcode 66. Plus One 加一! 解题报告
- LeetCode 66.Plus One
- leetcode 66. Plus One
- 【leetcode】【66】Plus One
- 【LeetCode】66. Plus One