
leetcode
刷题啦~
Liiiiiii~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
两数之和错误示范版(leetcode)
首刷leetcode刚开始写的程序真的是丑陋啊(两数之和) 刚开始写的程序真的是丑陋啊(两数之和) // 两数之和无脑堆版 class Solution: def twoSum(self,nums, target): l = len(nums) nub = range(l) key = [] for i in nub: ...原创 2019-01-26 21:29:30 · 223 阅读 · 0 评论 -
43.字符串相乘
小声bb,直接int()多好 = = 既然题目要求不能直接用Int(),我只好开动我的大脑开始想有什么解决方案。然后首先想到的就是小学时候老师教乘法时用乘式写法。 1 2 3 * 4 5 --------- 6 1 5 4 9 2 ...原创 2019-03-02 19:46:03 · 232 阅读 · 0 评论 -
344.反转字符
一 看到题目的第一反应,好简单啊,直接将第一个与最后一个对调,第二个与倒数第二个对调不就搞定了? 不过这样时间和空间上复杂度肯定会高一点,结果也不出所料: 执行用时: 216 ms 在Reverse String的Python3提交中击败了8.11% 的用户 内存消耗: 17.6 MB 在Reverse String的Python3提交中击败了1.18% 的用户 代码: cla...原创 2019-03-03 17:46:43 · 201 阅读 · 0 评论 -
557.反转字符串中的单词
一、暴力 看到第一想法,首先就是找到一个空格,将空前的那个单词反转。利用了一个for循环,对于每个单词还有一个while循环。速度感人。 执行用时: 440 ms 在Reverse Words in a String III的Python3提交中击败了0.84% 的用户 内存消耗: 14.2 MB 在Reverse Words in a String III的Python3提交中击...原创 2019-03-04 21:31:06 · 180 阅读 · 0 评论 -
238.除自身以外数组的乘积
暴力法 看到题目,第一个想法就是用for循环遍历整个数组,然后对每个位置的数求其他位置所有数的乘积保存下来。这样的话一个for循环一个while循环,时间复杂度应该是n*(n-1)也就是O(n^2)的复杂度,显然不满足题意,结果也是,在完成第16/17个例子的时候时间溢出了。 16 / 17 个通过 测试用例状态:超出时间限制 class Solution: def prod...原创 2019-03-05 16:55:51 · 191 阅读 · 0 评论 -
day 9 删除排序数据中的重复项
自己的想法 首先想到的是类似于数字排序的冒泡排序方法,即:先将i与i+1位置的数据比较,如果相同,将i+1处数据放到i+2处:然后将i+1与i+2进行比较,如果相同放到下一个位置,以此类推。 然后仔细一想,不对啊。。。这样只能保证数组中所有相邻数字都不同,但是不能保证所有不同项都能在最前面。。。 看官方题解后 看了官方说明的文字描述,就感觉自己立马顿悟了。。。然后自己码了以下,也成功的写出来了,虽...原创 2019-02-28 17:55:13 · 124 阅读 · 0 评论 -
day8 有效的括号
Orz,并不是我想象中的简单题,臣妾做不到啊。。。 在参考了官方给的提示以后,我的想法是建立一个函数,然后从头遍历整个数组,找到”(“或“{”或“["然后看与他紧挨的下一个是不是其对应的另一半括号:如何是,那么去掉这两个括号,将剩下的数组继续用这个函数遍历;如果不是,那么继续向下查找,知道找到符合要求的一对括号,或者遍历完整个数组都没能找到符合的紧挨的一对括号——说明不符合题意,返回Flase。 ...原创 2019-02-27 19:10:02 · 177 阅读 · 0 评论 -
day7 盛水最多的容器
暴力枚举法 对所有线段两两配对,存储所有可能的容量,输出最高的容量。 下面代码在第42个通例的时候时间溢出了。 class Solution: def maxArea(self, height): """ :type height: List[int] :rtype: int """ nums = enumer..原创 2019-02-02 22:25:44 · 154 阅读 · 0 评论 -
day6 最接近的三数之和
今天做的而题目和昨天做的“寻找三个数之和”关联很强,所以一看到题目就想到用昨天的方法。 首先将数组按大小排序,确定待寻找a<=b<=c三个数中的a(即nums[i]),即从nums的最左端取到最右端。然后确定b(即nums[l])和c(即nums[r]),其中b为与a相邻的右端第一个数,c为数组最右端的数。 然后就是让b和c分别从左向右和从右向左移动,从而逼近target-a-b-c的...原创 2019-02-01 23:10:30 · 189 阅读 · 0 评论 -
day6 三数之和
一 一看到题目就想到硬堆。。。就是用for循环结合做两数之和的时候的方法看看能不能做出来,结果卡在了最后,没想好如何解决返回值中有重复的元素组 class Solution: def threeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] ...原创 2019-02-01 00:20:35 · 170 阅读 · 0 评论 -
day 5
最长公共前缀 哈哈哈哈,今天这个我能写,虽然说写出来发现还是暴力循环。。。不过好歹写出来了QAQ 今天先交作业,明天再想想怎么改进,研究研究大神的代码啥的~ 溜了溜了,睡觉觉~ class Solution: def longestCommonPrefix(self, strs): """ :type strs: List[str] :rty...原创 2019-01-30 23:21:43 · 181 阅读 · 0 评论 -
day 4
字符串转整数 今天是我开心的if else狂堆环节,实际上因为我自己只会这个Orz 经过一系列的堆叠,然后我卡在了- 234这个输入上,在本地编译器输出是正常的,但是提交代码就显示输出错误。。。不知道为啥,但是今天这个判断语句练习做的还是挺开心的~ class Solution: def myAtoi(self, str): sig = 0 has_nub ...原创 2019-01-30 22:08:39 · 161 阅读 · 0 评论 -
day3
今天一天在坐火车,总结一下今天看的三种方法吧。。。 方法一 暴力堆叠法,两个for循环,遍历每一个元素为起始的最长子序列,然后在所有得到的回文序列中找到那个最长的。 方法二 不考虑直接找到回文序列的起始位置,而是首先找到回文序列的中心位置,向两边推广,然后在找到的所有子序列中筛选最长的。 方法三 马拉车算法,充分利用已经算好的部分减少工作量。(中间还有一点还是没搞懂,继续研究一下) class S...原创 2019-01-29 22:55:34 · 188 阅读 · 0 评论 -
leetcode day2 中位数
自己写了两个小时,结果总是有的条件不满足= = 看了眼官方给的答案,惊为天人。。。先把这个研究研究搞明白。 class Solution: def findMedianSortedArrays(self, A, B): """ :type nums1: List[int] :type nums2: List[int] :rty...转载 2019-01-28 15:23:48 · 204 阅读 · 0 评论