题目

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

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

你可以假设除了整数 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. 1滴血,2小时,验13种癌症,精度99%!日本东芝新技术引热议
  2. 不改一行代码定位线上性能问题 1
  3. 皮尔·卡丹的管理思想精髓:从小做到大
  4. 用C语言测试程序运行时间,c语言测试程序执行时间
  5. NOIP2008 普及组T1 ISBN号码 解题报告-S.B.S.
  6. 收集几个移动平台浏览器的User-Agent
  7. moxy json介绍_MOXy的对象图和动态JAXB
  8. c语言volatile_[技术]为什么单片机C语言编程时某一变量有时乱码
  9. Chapter7-4_來自獵人暗黑大陸的模型 GPT-3
  10. 【云图】如何创建云图(云存储)
  11. CentOs6.x yum源停止维护,安装yum源
  12. 没有5年测开经验,还真说不清Python生成器、迭代器、装饰器
  13. 《深入浅出Python机器学习》读书笔记 第一章 概述
  14. 二元函数连续性、可导性及极限
  15. 某度起诉“文库下载神器”,索赔300万
  16. 强世功:中美“关键十年” ——“新罗马帝国”与“新的伟大斗争”
  17. Android 线程4件套 MessageQueue Message Looper Handler之MessageQueue
  18. ios android 占有率,Android全球占有率28.4% 超iOS一倍
  19. grafana配置仪表盘
  20. 基于Springboot的在线网络小说阅读网站的设计与实现

热门文章

  1. C#垃圾回收(GC)
  2. SYSENTER、SYSEXIT—快速系统调用
  3. go/node/python 多进程与多核cpu
  4. 当前主流、最新技术回眸(四)
  5. 微信小程序正式上线 可置于聊天窗口顶部
  6. 解决Centos6.5虚拟机上网问题
  7. 老李分享:shell 监控cpu,memory,load average 1
  8. “4K云字库”基本框架图
  9. SQL Server 事务日志的问题
  10. java 方法 函数 区别_Java中的构造函数和方法之间的区别