leetcode题目,个人见解1
Posted Takey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode题目,个人见解1相关的知识,希望对你有一定的参考价值。
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。
个人见解:该题目任意输入一个正整数,如果个位数上的数字不为9,直接把个位数的数字加1,返回即可。
如果个位数为9,可以列举一个较为特殊的数字 99 。99+1=100。
当我们任意输入一个数时,最后一个数字(个位数)为9时,把它置为0,那相应的十位数也要判断是否为9,如果不为9,加1就可以了。
如果为9,也是要置为0。那此时99变成了00。
肯定是不对的,我们就判断最高位是不是为0,如果为0,就新创建一个比原来数组长度大1的新数组,并把最高位置为1。
解题代码:
public int[] plusOne(int[] digits) {
for(int i = digits.length - 1 ; i >= 0 ; i--) {
if(digits[i] == 9) {
digits[i] = 0;
continue;
}else {
digits[i] = digits[i] + 1;
break;
}
}
if(digits[0] == 0) {
int[] result = new int[digits.length+1];
result[0] = 1;
return result;
}
return digits;
}
以上是关于leetcode题目,个人见解1的主要内容,如果未能解决你的问题,请参考以下文章