如何把网站主关键词做到百度首页,处方药可以做网站宣传吗,建设安全备案网站,网页与网站设计LeetCode66——加一
题目描述#xff1a;
给定一个由 整数 组成的 非空 数组所表示的非负整数#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位#xff0c; 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外#xff0c;这个整数不会以零开头。
示例…LeetCode66——加一
题目描述
给定一个由 整数 组成的 非空 数组所表示的非负整数在该数的基础上加一。 最高位数字存放在数组的首位 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外这个整数不会以零开头。
示例
输入digits [1,2,3] 输出[1,2,4] 解释输入数组表示数字 123
输入digits [1,9] 输出[2,0] 解释输入数组表示数字 19
输入digits [8 ,99, 9] 输出[9 ,00 ,0] 解释输入数组表示数字 8999
输入digits [9 ,99, 9] 输出[10 ,00 ,0] 解释输入数组表示数字 9999
思路
1.末尾没有9——直接末尾元素加一即可加一
2.末尾有9——逆序找第一个不为9的元素并且将其加一 后面都变成0
3.全是9——新建个长度为原来数组长度1的新数组{1,0,0,0,0…}即可
4.模拟实现数字进位
Result01 public static int[] addOne(int[] arr){//初始i指向数组最后一个元素 逆序找第一个不为9的数字for (int i arr.length - 1; i 0; i--) {if (arr[i] ! 9) {//找到了不为9的元素 加一即可arr[i];//加一之后 后面全部置为0for (int j i 1; j arr.length; j) {arr[j] 0;}return arr;}}//执行到这的时候说明未执行if (arr[i] ! 9) return arr证明数组中的元素全都是9// arr 中所有的元素均为 9 加一之后 新创建一个数组返回即可int[] ans new int[arr.length 1];ans[0] 1;return ans;}运行结果;
Result02 public static int[] addOne(int[] arr) {//模拟现实数字进位的机制for (int i arr.length - 1; i 0; i--) {arr[i];//这一步对 10 取模 因为数组中每个元素只存储单个数字 所以只有91 模 10 0 其余的数字加一之后模10 都还是其本身arr[i] arr[i] % 10;//如果进位之后模10不等于0 证明其是小于9的数 直接返回数组if (arr[i] ! 0){return arr;}}//运行到这里的时候 说明进位后全为0 即原来数组的元素全是9 所以要新建数组arr new int[arr.length 1];arr[0] 1;return arr;}