本文主要是介绍leetcode03-简单的数组模拟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:
https://leetcode.cn/problems/plus-one/description/?envType=study-plan-v2&envId=programming-skills
思路:
因为题目+1是从后面加,所以考虑从后往前遍历数组。
在遍历过程中:
如果当前位为9: 则将该位置0继续往下遍历即可
如果当前位不是9:则直接将该位置的数+1后返回整个数组即可
如果遍历结束后函数还在执行,说明没return,说明数组每位都是9,此时应该新建一个长度为原来数组+1的新数组,新数组的第一个元素为1,其余为0
代码:
class Solution {public int[] plusOne(int[] digits) {int n = digits.length;for(int i = digits.length-1;i>=0;i--) {//当前位为9if(digits[i]==9) {digits[i]=0;}//当前位不为9 当前位+1 返回即可else {digits[i]++;return digits;}}//如果此时还没有返回说明全是9int[] res = new int[n+1];res[0] =1; return res;}
}
这篇关于leetcode03-简单的数组模拟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!