66. 加一

news/2024/11/9 9:48:05/
  1. 加一
    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
    你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。

思路:
千万别忘记最后一位为9
根据题意加一,没错就是加一这很重要,因为它是只加一的所以有可能的情况就只有两种:
1.除 9之外的数字加一;
2.数字 9。
加一得十进一位个位数为 0 加法运算如不出现进位就运算结束了且进位只会是一。
所以只需要判断有没有进位并模拟出它的进位方式,如十位数加 1 个位数置为 0,如此循环直到判断没有再进位就退出循环返回结果。
然后还有一些特殊情况就是当出现 99、999 之类的数字时,循环到最后也需要进位,出现这种情况时需要手动将它进一位。

class Solution {public int[] plusOne(int[] digits) {for (int i = digits.length - 1; i >= 0; i--) {digits[i]++;digits[i] = digits[i] % 10;if (digits[i] != 0) return digits;}digits = new int[digits.length + 1];digits[0] = 1;return digits;}
}

http://www.ppmy.cn/news/461847.html

相关文章

66-加一(PlusOne)

大家好,我是anonymousC,一个算法小白0.0。 题目描述 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&…

加6位操作(Java)

package spurs_ping; import java.util.Scanner; /*中国人非常喜欢6这个数字,因为大家总爱说66大顺.数学狂人李某人喜欢把什么都数字化,于是 她把顺利这个词也定义了数量级,6代表1级顺利, 66代表2级顺利,666代表3级顺利,以此类推.你看,数学狂人的世界总是让人无法理解.今天,李…

66 加一

题目描述: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出:…

C语言数组指针加1的问题

目录 1. 用C语言测试 2. 用汇编语言测试(MASM环境) 指向数组的指针存储的是连续的内存地址,而内存地址的最小编址单位是1字节,如果存储的数据本身移动几个字节,则内存地址也相应地移动几个字节。而数组指针的加1移动几个字节,取…

指针+1,怎么加?

指针1 指针&#xff0b;1&#xff0c;是加一个单元格还是加一个字节呢&#xff0c; 先看一个程序&#xff1a; #include <stdio.h> int main() {int arr[] {1,2,3,4,5,6,7,8,9,10};int *p arr;p;//p p 1*p 10;p;*p 20;printf("%d,%d\n",arr[0],arr[1])…

指针加1

日常生活中我们常用的计算是加减乘除&#xff0c;那么对于指针来说&#xff0c;它却只有加减运算 首先我们先讨论指针加一是怎么加的 可以参考下列代码 int main() {int arr[10] {0,1,2,3,4,5,6,7,8,9};int *p arr;//将数组arr[0]的地址赋给指针变量pprintf("%d\n"…

6-1

今天是儿童节&#xff0c;本来打算晚上去参加一个朋友聚会的&#xff0c;结果身体不舒服&#xff0c;就没去&#xff0c;好遗憾 1.继续联调通知GM的功能 2.要细心&#xff0c;耐心&#xff0c;遇到问题不要慌&#xff0c;耐心查找问题&#xff0c;出了问题很正常。 业务熟悉…

1-6

#include <stdio.h> int main() { int a100 ; float b3.14f ; char cC ; printf("a%d\n",a); printf("b%.2f\n",b); printf("c%c\n",c); return 0 ; }