首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定个由整数组成的非空数组所表示的非负整数,在该数的基础上。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。...---- ---- 题目信息 输入:整数数组(整体表示个数字每位就是0-9,个十百千...位) 输出:整数数组(给这个数字之后用数组表达对应数字) 思考 开始想到的就是模拟加法,在仔细读题目后又得到了另种解决方式...,就是还原成表达的数字之后再还原成数组。...考虑的点就是进位,1>设值>判断-要么继续执行这三个步骤要么结束 //方式二 public int[] plusOne(int[] digits) { for (int i = digits.length...[0] = 1; return digits; } 总结 总体来说是简单的两种思路,是化成数字不用管怎么再化回数组,二是模拟加法过程。

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

进制,减法,23个位运算技巧

进制,减法 二进制最高位为1时表示负数,为0时表示正数。 **原码:**个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。...负数的补码为对该数的原码除符号位外各位取反,然后在最后1。...1-0=1; 0不够减1,向前借2变成2;2-1=1; 0在上步被借所以减为-1,-1不够减0,向前借2变成1;1-0=1; 1在上步被借所以减为0,0不够减1,向前借2...由此推出:数不够减就向前借位,然后该数2....可见二进制和十进制减法的区别就是向前借2. 23个位运算技巧 1.获得int型最大值` int getMaxInt(){ return (1 << 31) - 1;//2147483647

1.1K30

leetcode 66 |

给定个由整数组成的非空数组所表示的非负整数,在该数的基础上。 最高位数字存放在数组的首位, 数组中每个元素只存储个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。...分析:这道题是不是看第眼是不是就想把数组转化为整数,然后再用这个整数1,再将这个结果转化为数组~那可就调入这道题的陷阱里了,这样做是不行的,因为这个整数可以很大,大的超过int的范围,甚至超过long...我们可以分情况讨论,第,我们让数组的最后个数1,即个位1,如果小于10,则说明不存在进位的问题。...所以我们就可以直接返回digits数组;第二,个位1之后,若大于等于10,说明存在进位问题,所以最后的结果数组的长度可能为digits的数组长度1。...我们可以定义个数组result,长度为digits的长度+1,然后把digits数组copy份到result[1]~result[digits.length],然后来处理进位的问题。

62330

LeetCode - #66

LeetCode 算法到目前我们已经更新了 65 期,我们会保持更新时间和进度(周、周三、周五早上 9:00 发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。...描述 给定个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。...} digits.insert(1, atIndex: 0) return digits } } 主要思想:迭代并将数组从最后个更改为第个...特别感谢 Swift社区 编辑部的每位编辑,感谢大家的辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言的发展贡献自己的力量,排名不分先后: 张安宇@微软[3]、戴铭@快手[4]、展菲@

30720

Swift - LeetCode

题目: 描述: 给定个非负整数组成的非空数组,给整数。 可以假设整数不包含任何前导零,除了数字0本身。 最高位数字存放在列表的首位。 语文能力捉急啊,看了半天没看懂。。。...好吧,第句是:给定个以数字数组表示的非负数,ok,我终于理解题意了???,意思是个数组里面存放的元素可以看成个非负整数,现在给这个整数去。...那我们需要做的是,去判断这个非负整数后需不需要进位,那就容易了。从数组末位开始,如果最后位不是整数9那么直接返回数组,如果是整数9那就变成整数0。...极端情况:所有数字都是整数9,那就都变成整数0了,所以需要在数组头部插入个整数1。...,找到另种解法,求余然后,设置个标志位判断是否进位 代码如下: class Solution { func plusOne(_ digits: [Int]) -> [Int] {

56630

行!

今天看到道有趣的题目,分享给大家。 题目不难,但是我感觉挺有意思,大家可以看下。 做该题之前,我们先来复习下二叉树的基础知识,重点关注节点的层数和深度之间的关系。...更多基础知识大家可以看这篇文章,文读懂二叉树。 话不多说,咱们直接看题。 leetcode 623在二叉树中增加行 题目很容易理解,让我们在二叉树特定的层数添加层特定的节点。...是不是多了层节点,然后还变丑了?尽力了哈哈,还是画的不帅。 题目已经搞懂,那么大家看到这个题目的第想法是什么呢?...插入新节点步骤 好啦,到这里我们这个题目就解决啦,下面我们直接看代码吧,当然我这里只是种写法,大家可以随意发挥。...那我们来想下结束递归的条件,当root == null 时,我们直接 return;当我们搜索到待插入的那层时,我们直接插入节点即可,否则的则继续进行搜索,代码很简单,比仅仅比二叉树的 dfs 多了丢丢逻辑

38310

LeetCode | 66.

问题分析 这道题目是给出个数组,数组的每个元素都是个个位数,然后对数组的最后个元素进行的操作,的操作看似很容易,但是需要考虑两个问题点。...如果数组的最后个元素是个小于 9 的元素,那么直接就算完成了整个数组的操作。...但是,如果数组的最后个元素是 9,那么就会向数组的倒数第二个元素进行进位,因为要保持每个数组的元素都是个个位数。因此,我们就需要对数组的倒数第二个元素的值也做。...那么当数组的倒数第二个元素在后也产生进位,那么就需要接着把进位向前相加。 ? 最后个元素小于9的情况 ?...而当数组的每位都为 9 的时候,进行的数组比原始数组是多个元素的。 ?

33520

、题目描述: 给定个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。...题目很简单,找到数组最后个元素1即可,但是我这里提出种进阶的要求,返回的是数字怎么办? 我的思路很简单,从末尾开始,每前位flag乘10,然后再乘数组中的数字。...比如: 4321:取1 然后 1 然后flag 为1 ,取2,然后flag乘以10,为10 2乘10得20,取3,然后flag乘10,为100 3乘以100得300,取4 然后flag乘以10,为1000...当我们对数组digits 时,我们只需要关注 digits 的末尾出现了多少个 9 即可。...如果不为9,直接1即可,若末尾有n个9,我们直接将第个不为9的值1,然后其他9置0即可,如果都是9,那么我们就构造个比digits长度多1的新数组,将首元素置为1,其余元素为0即可。

12240
领券