内容简介:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。每个元素的和若为10,则向前进一位,若数组中index=0的元素为0,则说明最高位进位1,在数组头部insert一个元素1(例如:数组[9,9,9],则进位成[1,0,0,0])
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。
示例
示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。 复制代码
答案
每个元素的和若为10,则向前进一位,若数组中index=0的元素为0,则说明最高位进位1,在数组头部insert一个元素1(例如:数组[9,9,9],则进位成[1,0,0,0])
代码如下:
func plusOne(_ digits: [Int]) -> [Int] {
var result = digits
var carry = 1
for idx in result.indices {
let newIdx = digits.count - 1 - idx
let sum = digits[newIdx] + carry
if sum == 10 {
carry = 1
result[newIdx] = 0
} else {
carry = 0
result[newIdx] = sum
}
}
if result.first == 0 {
result.insert(1, at: 0)
}
return result
}
复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
复盘+:把经验转化为能力(第2版)
邱昭良 / 机械工业出版社 / 39.00
随着环境日趋多变、不确定、复杂、模糊,无论是个人还是组织,都需要更快更有效地进行创新应变、提升能力。复盘作为一种从经验中学习的结构化方法,满足了快速学习的需求,也是有效进行知识萃取与共享的机制。在第1版基础上,《复盘+:把经验转化为能力》(第2版)做了六方面修订: ·提炼复盘的关键词,让大家更精准地理解复盘的精髓; ·基于实际操作经验,梳理、明确了复盘的"底层逻辑"; ·明确了复......一起来看看 《复盘+:把经验转化为能力(第2版)》 这本书的介绍吧!