leetcode:Plus One (加一)【面试算法题】
发布时间:2020-12-14 03:57:47 所属栏目:大数据 来源:网络整理
导读:题目: Given a number represented as an array of digits,plus one to the number. 题意动态数组存了一些个位数字,组成一个大数,计算这个大数加一之后的值。 模拟大数的加法,当没有进位的时候就可以弹出循环。 特殊考虑各个位数就是9的情况,加一后会多
题目:Given a number represented as an array of digits,plus one to the number. 题意动态数组存了一些个位数字,组成一个大数,计算这个大数加一之后的值。 模拟大数的加法,当没有进位的时候就可以弹出循环。 特殊考虑各个位数就是9的情况,加一后会多出一位,即结果是1加上len个0,len是digits的长度。 class Solution { public: vector<int> plusOne(vector<int> &digits) { int i,p,temp,len=digits.size(); for(i=0;i<len;++i) { if(digits[i]!=9)break; } if(i==len) { vector<int>result; result.push_back(1); for(i=0;i<len;++i)result.push_back(0); return result; } digits[len-1]+=1; p=0; for(i=len-1;i>=0;--i) { temp=digits[i]+p; digits[i]=temp%10; p=temp/10; if(p==0)break; } return digits; } }; // http://blog.csdn.net/havenoidea/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |