LeetCode 66. Plus One
博客转载自:http://www.cnblogs.com/grandyang/p/4079357.html
Solution1:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int i = digits.size() - 1;
bool a=true;
while (a) {
if (++digits[i] < 10) {//细节处理要细心
a = false;
}
else digits[i] = 0;
--i;
if (i == -1)
break;
}
if (digits[0]%10 == 0)
digits.insert(digits.begin(),1);//思考要全面!!
return digits;
}
};
Solution2:
这个答案真是棒棒棒啊!!!
class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
int n = digits.size();
for (int i = n - 1; i >= 0; --i) {
if (digits[i] == 9) digits[i] = 0;
else {
digits[i] += 1;
return digits;
}
}
if (digits.front() == 0) digits.insert(digits.begin(), 1);
return digits;
}
};
本文提供两种解决LeetCode 66. Plus One问题的方法。Solution1通过循环进位处理,实现数组中每个数字加一的功能;Solution2采用倒序遍历数组的方式,针对9进行特殊处理,简洁高效。
559

被折叠的 条评论
为什么被折叠?



