66Plus One
来源:互联网 发布:华尔街英语 知乎 编辑:程序博客网 时间:2024/06/04 20:06
题目链接:https://leetcode.com/problems/plus-one/
题目:
Given a non-negative number represented as an array of digits, plus one to the number.The digits are stored such that the most significant digit is at the head of the list.
解题思路:
- 保持一个进位变量。
- 数组的每一位都需要考虑该位数字是不是等于 9,以及进位是否为 1。
需要注意的是,当最高位有进位时,需要开辟新的数组,以满足增加的最高位,并把最高位赋值为 1,此时其它位都为 0。
注意:
为了使算法只遍历一次数组,不需要过早开辟长度大于 digits.length 的新数组。因为只有当原始数据的所有数位都为 9 时,最高位进位才会发生。
public class Solution { public int[] plusOne(int[] digits) { if(digits == null || digits.length == 0) return digits; int len = digits.length; int[] res = new int[len]; int reminder = 0; for(int i = len - 1; i >= 0; i --) { if(i == len - 1) { if(digits[i] == 9) { reminder = 1; res[i] = 0; } else res[i] = digits[i] + 1; continue; } if(digits[i] < 9) { res[i] = digits[i] + reminder; reminder = 0; } else { if(reminder == 1) { res[i] = 0; reminder = 1; } else res[i] = digits[i] + reminder; } } if(reminder == 1) { res = new int[len + 1]; res[0] = 1; } return res; }}
108 / 108 test cases passed.Status: AcceptedRuntime: 304 ms
0 0
- leetcode 66 Plus One
- [leetcode 66] Plus One
- 66、Plus One
- [LeetCode 66]Plus One
- leetcode ||66、 Plus One
- leetcode-66 plus one
- LeetCode 66 Plus One
- Plus One - LeetCode 66
- leetcode-66 Plus One
- #66 Plus One
- Leetcode[66]-Plus One
- 【leetcode】【66】Plus One
- leetcode[66]:Plus One
- leetcode-66-Plus One
- 66Plus One
- leetcode 66:plus one
- Leetcode# 66 Plus One
- leetcode 66: Plus One
- codeVS第二次月赛 C
- Qt中如何用指针返回参数
- LeetCode题解2.1.6
- AndroidStudio -快捷键
- mysql内置函数汇总
- 66Plus One
- HDU 2602 Bone Collector
- 该文件没有与之关联的程序来执行操作。解决方案
- NOIP 2010 导弹拦截 排序+贪心
- static 关键字的作用
- 中文编码杂谈
- HDU1241 Oil Deposits(宽搜)
- Android 开源框架Universal-Image-Loader完全解析(四)UNIVERSAL IMAGE LOADER. PART 3---ImageLoader详解
- POJ 3087-Shuffle'm Up(map+模拟)