加一

news/2024/11/9 5:04:50/

题目描述:给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小进行排列,最大的数在列表的最前面。

样例:给定 [1,2,3] 表示 123, 返回 [1,2,4].给定 [9,9,9] 表示 999, 返回 [1,0,0,0].


其实是两个链表求和的简单版(链表求和详见:点击打开链接)。简单表现在两个方面:

1. 是数组,不是链表。数组的操作比链表简单太多了(因为有天然的下标,同时,不存在“摘链”,“链接”这些繁琐的操作)

2. 只是加1,而不是两个数组相加

思路和链表求和是一样的了。用一个整型变量add1记录是否应该进位,每一位的处理:为这一位加add1的和,再对10取余。这个思路比链表求和简单太多,不仔细讲了,有不明白的地方,可以回看上边的链接。

给出代码:

class Solution:# @param {int[]} digits a number represented as an array of digits# @return {int[]} the resultdef plusOne(self, digits):result = []n = len(digits) - 1add1 = 1while n >= 0:temp = digits[n] + add1result.insert(0, temp % 10)add1 = temp / 10n -= 1if add1 == 1:result.insert(0, 1)return result# Write your code here

需要注意第13行,最后若add1不为0,还要向前进一位。



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

相关文章

66. 加一

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

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;出了问题很正常。 业务熟悉…