leetcode:Plus One (加一)【面试算法题】
2013-10-17 17:17
274 查看
题目:Given a number represented as an array of digits, plus one to the number.
题意动态数组存了一些个位数字,组成一个大数,计算这个大数加一之后的值。
模拟大数的加法,当没有进位的时候就可以弹出循环。
特殊考虑各个位数就是9的情况,加一后会多出一位,即结果是1加上len个0,len是digits的长度。
题意动态数组存了一些个位数字,组成一个大数,计算这个大数加一之后的值。
模拟大数的加法,当没有进位的时候就可以弹出循环。
特殊考虑各个位数就是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/[/code]
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【066-Plus One(加一)】
- 【LeetCode-面试算法经典-Java实现】【066-Plus One(加一)】
- 【LeetCode-面试算法经典-Java实现】【150-Evaluate Reverse Polish Notation(计算逆波兰式)】
- leetcode:Path Sum (路径之和) 【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【160-Intersection of Two Linked Lists(单链表的交集)】
- leetcode:Pow(x, n) (计算x的n次方) 【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】
- 【LeetCode-面试算法经典-Java实现】【064-Minimum Path Sum(最小路径和)】
- 【LeetCode-面试算法经典-Java实现】【078-Subsets(子集)】
- 【LeetCode-面试算法经典-Java实现】【088-Merge Sorted Array(合并排序数组)】
- [leetcode.com]算法题目 - Plus One
- 【LeetCode-面试算法经典-Java实现】【129-Sum Root to Leaf Numbers(全部根到叶子结点组组成的数字相加)】
- 【LeetCode-面试算法经典-Java实现】【105-Construct Binary Tree from Preorder and Inorder Traversal(构造二叉树)】
- leetcode:Longest Substring Without Repeating Characters (双指针扫描) 【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【116-Populating Next Right Pointers in Each Node(二叉树链接右指针)】
- 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】
- leetcode:Minimum Path Sum(路线上元素和的最小值)【面试算法题】
- 【LeetCode-面试算法经典-Java实现】【007-Reverse Integer(翻转整数)】
- 【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】
- [面试算法题]比较二叉树异同-leetcode学习之旅(5)