题目

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

你可以假设除了整数 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 实现数组 加一相关推荐

  1. LeetCode 758. 字符串中的加粗单词(Trie树)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个关键词集合 words 和一个字符串 S,将所有 S 中出现的关键词加粗.所有在标签 <b> 和 </b> 中的字母都会加 ...

  2. Swift基础——数组Array

    Swift基础--数组Array 数组:使用有序列表存储同一类型的多个值,相同值可出现在一个数组的不同位置. 数组简介 首先,和String一样我们也来看看他的一些Api方法 常规操作方法 rever ...

  3. 每日一道 LeetCode (42):旋转数组

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  4. 【前端js】实现剑指offer|leetcode(二)——数组题目集合

    文章目录 一.数组去重 1. 对排序数组去重(leetcode 26. 删除排序数组中的重复项) 2. 检查是否存在重复元素(leetcode 217. 存在重复元素) 3. 检查相邻k个元素是否存在 ...

  5. iOS开发swift版异步加载网络图片(带缓存和缺省图片)

    iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下: ...

  6. LeetCode 616. 给字符串添加加粗标签(Trie树)

    文章目录 1. 题目 2. 解题 1. 题目 给一个字符串 s 和一个字符串列表 dict ,你需要将在字符串列表中出现过的 s 的子串添加加粗闭合标签 <b> 和 </b> ...

  7. LeetCode -349 两个数组的交集

    难度:简单 给定两个数组 nums1 和 nums2 ,返回它们的交集 .输出结果中的每个元素一定是唯一 的.我们可以不考虑输出结果的顺序 . 题目链接 LeetCode -349 两个数组的交集 S ...

  8. LEETCODE | PYTHON | 724 | 寻找数组的中心下标

    LEETCODE | PYTHON | 724 | 寻找数组的中心下标 1. 题目 给你一个整数数组 nums ,请计算数组的 中心下标 . 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等 ...

  9. C++描述 LeetCode 26. 删除排序数组中的重复项

    C++描述 LeetCode 26. 删除排序数组中的重复项   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客 ...

最新文章

  1. 2021年春季学期-信号与系统-第二次作业参考答案
  2. c语言物流管理信息系统,[源码和文档分享]基于C语言的物流配送管理信息系统...
  3. php调用应用程序api,使用PHP调用openAPI
  4. android 减少布局层级,Android 布局优化
  5. 4修改初始值_Java基础语法 --4(连载)
  6. 自建服务器打印机,关于Windows 2016 Server创建打印机服务器后对打印机设置权限的问题...
  7. 当数据改变时,VUE是如何实现DOM更新的?
  8. 表格是html文档的基本属性吗,Html
  9. Fatal error: Allowed memory size of 524288000 bytes exhausted (tried to allocate 64 bytes) in D
  10. Hobject 与 OpenCV IplImage 和 Mat 的相互转换
  11. docker-compose 学习:通过 Dockerfile 和 build 指令搭建 LNMP
  12. java请求url拼接xml_java访问一个URL,会返回给你一个XML格式的数据,该怎么实现?...
  13. 计算机人工智能领域英文文献,人工智能英文参考文献精选
  14. 批量给pdf加水印,请用这个办法
  15. EAUML日拱一卒-活动图::14.2 Behavior StateMachines (10)
  16. 智能泊车技术及现状详解
  17. 云计算与大数据作业 21大数据 刘佳琪
  18. 从程序员到CTO的Java技术路线图
  19. java课程设计打字训练测试软件_Java版打字练习案例源码
  20. ofo小黄车仍在自动续费!如何关闭微信自动扣费?

热门文章

  1. 哈哈,netbeans5.5的Visual Web Pack终于出来了
  2. imx6 uboot lvds clock
  3. 避免每个类中都初始化日志类
  4. 混合使用Azure LB和ILB访问相同web服务(2)
  5. 精品软件 推荐 百度杀毒 软件
  6. Visual Studio 2013 Web开发新特性
  7. 不装.net Framework 也能运行WinForm程序,用飞信(转)
  8. 读《编程之道》-对于程序员的抽象描述
  9. 话里话外:转帖:制约中小企业发展三大管理问题与SaaS的成功要素
  10. Hibernate标识符属性(主键)生成策略全析