leetcode
痒痒好
这个作者很懒,什么都没留下…
展开
-
LeetCode832/561-11/28
偷了个懒,昨天刷了两道题,今天没刷,刚好总结下昨天遇到的坑。1、832 (1)这道题比较简单,直接手撕,两次就accepted。不过有一个注意的点,在对数组进行翻转时,可以使用[(columnLength+1)/2]来对第二次循环进行计数,能够减少循环的算法。2、561 (1)这道题比较坑。问的是主要需要返回已经升序数组的偶数项之和。最开始我用了快排,结果发现太久没写了。快排写了大半天...原创 2018-11-30 00:12:57 · 114 阅读 · 0 评论 -
LeetCode905-11/28
上半学期主要学习理论,导致编程能力生疏了不少。早就听闻了LeetCode的大名,决定以后每天抽空刷一刷。今天挑了最简单的数组题目,收获良多,发现了许多以前没注意到的知识,下面开始总结。1、最开始尝试使用for(i:array),发现运行效率很低,还要重新定义一个参数来确定次数。以后还是乖乖用普通的用法吧。2、中间有尝试使用交换两个数来进行解题。发现使用异或(^)运算的效率要高于定义新变量交换...原创 2018-11-28 00:35:20 · 77 阅读 · 0 评论 -
LeetCode922/766/867-12/5
今天一口气刷了三道easy的题,基本都是直接accepted,没什么难度。在这边记录下几个要点和可优化的地方。922:简单来说,这道题的要求就是奇数在奇数序号的位置,偶数在偶数序号的位置。参考答案的思路和我的思路一样,没什么好说的。这里要讨论的是另外一种,空间复杂度为(1)的思路。1、从0开始遍历。当0为偶数时,符合条件,到1。当0为奇数时,与最后一个数交换(总共有n个数字,n为偶数,因...原创 2018-12-05 12:02:52 · 144 阅读 · 0 评论 -
LeetCode566/896/888-12/6
今天刷了三道easy题,其中一道题看错题目,其余都做出来了。下面记录下要点。566这道题的要求为给定一个矩阵和两个数r、c。按照r、c重新排列矩阵,使矩阵成为一个r*c的新矩阵,数字则是依次继承。题目本身没什么难度,方法效率也大同小异。但我发现了一些简洁的代码,主要是利用了/和%操作。比如:res[i/c][i%c] = nums[i/m][i%m];这样使得整个代码看起来非常简洁...原创 2018-12-06 18:23:58 · 93 阅读 · 0 评论 -
LeetCode283/448-12/9
这两道题难度开始增加,对于空间复杂度有了更高的要求,因此花费了许多时间。283: 这一题要求在不新建数组的前提下将数组中所有0置尾,同时不改变排序。我用的方法太麻烦了,就不说了,这里简单介绍下discuss中的算法。1、设置两个定位参数,一个专门找0,一个专门找非0。2、首先找到第一个0,定位为indextoput,从这个0开始,往后查找第一个非0元素ex。将两个元素交换。随后in...原创 2018-12-09 23:41:17 · 112 阅读 · 0 评论 -
LeetCode169/122/217/717-12/10
169、本题要求给定数组,求出数组中出现最多的数。1、常规方法是排序之后,检查nums[i]==nums[i+1],随后计数并与max对比。当max最大时,nums[i]就是所求数。2、还有另一种方法,按我的理解是“抵消法”。因为题目中要求出现次数最多的数的次数大于n/2,也就是长度为7时次数为4,8时次数为5。因此可使用抵消法。初始化count=1,res = nums[0]。然后从进...原创 2018-12-10 23:36:11 · 106 阅读 · 0 评论