加一(66)
66. 加一 - 力扣(LeetCode)
解法:
class Solution {
public:
vector<int> plusOne(vector<int>& digits)
{
bool plus_one = true;
for (int i = digits.size() - 1; i >= 0; --i) {
if (plus_one) {
int tmp = digits[i] + 1;
if (tmp >= 10) {
plus_one = true;
digits[i] = 0;
}else {
plus_one = false;
digits[i] = tmp;
}
}else {
break;
}
}
//最高位需要进1
if (plus_one) {
digits.insert(digits.begin(), 1);
}
return digits;
}
};
总结:
计算时间复杂度O(N),计算空间复杂度O(1)。由于数组0位置存储最高位,所以需要从size-1位置开始计算,需要考虑最高位进位的情况。
原文地址:https://blog.csdn.net/zhangsj1007/article/details/145406893
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/527871.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/527871.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!