LeetCode (2) - swift 实现数组 加一
题目
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
复制代码
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
复制代码
class Solution {func plusOne(_ digits: [Int]) -> [Int] {if digits.isEmpty {return digits}//这里这样写的原因是,参数digits是let定义的不可变的哦var digits = digitsfor i in (0..<digits.count).reversed() {if digits[i] < 9 {digits[i] += 1return digits}digits[i] = 0}//运行至此说明carray还是等于1,即全是9的情况,需要在首位插入数字1digits.insert(1, at: 0)return digits}
}
复制代码
func plusOne(_ digits:[Int]) -> [Int] {// 数组为空 直接返回if digits.isEmpty {return digits}var digits = digitsfor i in (0..<digits.count).reversed() {if digits[i] < 9 {digits[i] += 1return digits}digits[i] = 0}digits.insert(1, at: 1)print(digits)return digits
}plusOne([1,2,3])复制代码
解题思路 :
1) 数组不存在直接retur
2) 对拿到的数组进行swift 反向遍历, 反向遍历是swift 的新特性
2.1) 如果0 位<9 直接将0 位加1 返回
2.2) 如果0 为为9 需要将0 为设置为0 , 如果1位为9 继续将1位设置+1 返回
2.3) 如果N位都为 0 ,就插入1 在第一位 digits.insert(1, at: 1)将元素插在数组的最左边复制代码
转载于:https://juejin.im/post/5c84d34ef265da2dd6392aa8
LeetCode (2) - swift 实现数组 加一相关推荐
- LeetCode 758. 字符串中的加粗单词(Trie树)
文章目录 1. 题目 2. 解题 1. 题目 给定一个关键词集合 words 和一个字符串 S,将所有 S 中出现的关键词加粗.所有在标签 <b> 和 </b> 中的字母都会加 ...
- Swift基础——数组Array
Swift基础--数组Array 数组:使用有序列表存储同一类型的多个值,相同值可出现在一个数组的不同位置. 数组简介 首先,和String一样我们也来看看他的一些Api方法 常规操作方法 rever ...
- 每日一道 LeetCode (42):旋转数组
每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...
- 【前端js】实现剑指offer|leetcode(二)——数组题目集合
文章目录 一.数组去重 1. 对排序数组去重(leetcode 26. 删除排序数组中的重复项) 2. 检查是否存在重复元素(leetcode 217. 存在重复元素) 3. 检查相邻k个元素是否存在 ...
- iOS开发swift版异步加载网络图片(带缓存和缺省图片)
iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下: ...
- LeetCode 616. 给字符串添加加粗标签(Trie树)
文章目录 1. 题目 2. 解题 1. 题目 给一个字符串 s 和一个字符串列表 dict ,你需要将在字符串列表中出现过的 s 的子串添加加粗闭合标签 <b> 和 </b> ...
- LeetCode -349 两个数组的交集
难度:简单 给定两个数组 nums1 和 nums2 ,返回它们的交集 .输出结果中的每个元素一定是唯一 的.我们可以不考虑输出结果的顺序 . 题目链接 LeetCode -349 两个数组的交集 S ...
- LEETCODE | PYTHON | 724 | 寻找数组的中心下标
LEETCODE | PYTHON | 724 | 寻找数组的中心下标 1. 题目 给你一个整数数组 nums ,请计算数组的 中心下标 . 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等 ...
- C++描述 LeetCode 26. 删除排序数组中的重复项
C++描述 LeetCode 26. 删除排序数组中的重复项 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客 ...
最新文章
- 2021年春季学期-信号与系统-第二次作业参考答案
- c语言物流管理信息系统,[源码和文档分享]基于C语言的物流配送管理信息系统...
- php调用应用程序api,使用PHP调用openAPI
- android 减少布局层级,Android 布局优化
- 4修改初始值_Java基础语法 --4(连载)
- 自建服务器打印机,关于Windows 2016 Server创建打印机服务器后对打印机设置权限的问题...
- 当数据改变时,VUE是如何实现DOM更新的?
- 表格是html文档的基本属性吗,Html
- Fatal error: Allowed memory size of 524288000 bytes exhausted (tried to allocate 64 bytes) in D
- Hobject 与 OpenCV IplImage 和 Mat 的相互转换
- docker-compose 学习:通过 Dockerfile 和 build 指令搭建 LNMP
- java请求url拼接xml_java访问一个URL,会返回给你一个XML格式的数据,该怎么实现?...
- 计算机人工智能领域英文文献,人工智能英文参考文献精选
- 批量给pdf加水印,请用这个办法
- EAUML日拱一卒-活动图::14.2 Behavior StateMachines (10)
- 智能泊车技术及现状详解
- 云计算与大数据作业 21大数据 刘佳琪
- 从程序员到CTO的Java技术路线图
- java课程设计打字训练测试软件_Java版打字练习案例源码
- ofo小黄车仍在自动续费!如何关闭微信自动扣费?