LeetCode
姚尔摩斯
这个作者很懒,什么都没留下…
展开
-
【LeetCode】1. 两数之和(使用字典)
以前我写python都是直接写的这次看到实例里第一题就有class有点懵了我以为只有java才要定义class呢不过这还好 紧接着我又碰到了几个问题 现在把我的思考和解答写在下面而且不知道为什么定义的时候还要写self 很奇怪 因为定义的时候需要调用的时候用不用感觉很麻烦解:self代表类的实例,而非类 在引用方法的时候创建的类的实例会被传入self中所以要定义一个self...原创 2019-02-16 02:43:10 · 233 阅读 · 0 评论 -
【LeetCode】15. 三数之和
给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]首先将数组...原创 2019-03-11 22:18:42 · 95 阅读 · 0 评论 -
【LeetCode】18.四数之和(类似于三数之和)
四数之和类似于三数之和,就是在三数之和的基础上加了一个循环,发现原来用j k 表示双指针不好,还是用l r 比较好,所以改了。原来我用来限制 i 和 j 的 len(nums)-3 和 len(nums)-2 被我去掉了 ,因为其实没什么必要,在输入【0,0,0,0】时还会导致错误。class Solution: def fourSum(self, nums: List[in...原创 2019-03-15 17:00:12 · 111 阅读 · 0 评论 -
【LeetCode】17.电话号码组合(字典和列表解析)
参考别人的 首先给一个字典,解析出第一个数字,用来作为首字母排序用 ,然后依次填充入resclass Solution: def letterCombinations(self, digits): """ :type digits: str :rtype: List[str] """ if not di...原创 2019-03-14 12:57:57 · 579 阅读 · 0 评论 -
【LeetCode】14. 最长公共前缀
要求编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入原创 2019-03-07 02:22:59 · 113 阅读 · 0 评论 -
【LeetCode】16. 最接近的三数之和(双指针)
和三数之和很接近 不过只用返回一个最接近的值 所以也是用双指针 找到最接近的一个值class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: nums.sort() diff=nums[0]+nums[1]+num[len(nu...原创 2019-03-13 22:08:28 · 95 阅读 · 0 评论 -
【LeetCode】11. 盛最多水的容器(双指针法)
暴力算法我不想写了 感觉没什么意思看了一下这题的双指针法这种方法背后的思路在于,两线段之间形成的区域总是会受到其中较短那条长度的限制。此外,两线段距离越远,得到的面积就越大。我们在由线段长度构成的数组中使用两个指针,一个放在开始,一个置于末尾。 此外,我们会使用变量 来持续存储到目前为止所获得的最大面积。 在每一步中,我们会找出指针所指向的两条线段形成的区域,更新 这个变量,并将指向...原创 2019-02-25 17:37:00 · 174 阅读 · 0 评论 -
【LeetCode】516. 最长回文子序列
这题看了好久 本来以为和最长字串差不多用动态规划设两个列表来算但是没什么头绪后来去看了别人的解法 看了十几分钟才看懂下面这种解法 1单位要单独拿出来算从2开始因为互文的子序列两头肯定是一样的 如 "aba" "acbca"假如能使 martix[i][j] 等于从 s [i] 到 s[j] 所包含的最大子序列长度那么 当s[i] == s[j] 时 最大长度=matrix[i...原创 2019-02-20 06:39:25 · 362 阅读 · 0 评论 -
【LeetCode】5. 最长回文子串(动态规划)
1.动态规划 时间复杂度O(n^2) 空间复杂度O(n^2)大体思路就是 如果 "aba"是回文的 那么"aabaa" 也一定是回文的 因为就是在两边加上了相同的所以从最小的 "a" "aa" "aba" 这种开始 逐渐扩张 找到最大的一个class Solution: def longestPalindrome(self, s): """原创 2019-02-20 04:45:32 · 406 阅读 · 0 评论 -
4. 寻找两个有序数组的中位数(要求时间复杂度为 O(log(m + n)))
不知道这题为什么能算困难 。。。感觉几分钟都不用没什么难度 只要知道list.sort()这个函数基本上就已经解决了了但是我仔细看了下 要求算法的时间复杂度为 O(log(m + n))。有点头痛 暂时还没想出来先放着吧第一种class Solution: def findMedianSortedArrays(self, nums1, nums2): ""...原创 2019-02-19 04:48:11 · 1451 阅读 · 0 评论 -
【LeetCode】6. Z 字形变换
实际上就是对一列list做出某种基于numRows的函数变形第一排和最后一排比较简单,每个相邻的对应字母之间相隔 2*numRows-2 个单位, 中间几排每一个间隔字符中间还有一个多出来的字符 大概可以函数表示为 i+(2*numRows-2)-2*j需要注意的是不能超过原list的最大长度 找到最大长度后就停止class Solution: def convert...原创 2019-02-24 02:17:51 · 99 阅读 · 0 评论 -
【LeetCode】3.无重复字符的最长字串(滑动窗口)
刚开始的方法是进行n此循环每次都从头找最长的一串找到后就切割下来然后比对一下 时间复杂度是O(n^2)但是失败了 说是时间超标以下是代码class Solution: def lengthOfLongestSubstring(self, s): """ :type s: str :rtype: int ...原创 2019-02-18 03:30:42 · 411 阅读 · 0 评论 -
【LeetCode】73.矩阵清零(原地算法)
本来想就做一题的 没想到碰到一个特别简单的 也睡不着 决定在做一题题目给定一个mxn的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]示例2:输入: ...原创 2019-02-17 04:10:15 · 228 阅读 · 0 评论 -
【LeetCode】520.检测大写字母
虽然说给自己定了个规矩每天至少要做一题,但是没想到刷出来一道这么简单的 题目我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。 单词中所有字母都不是大写,比如"leetcode"。 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: T...原创 2019-02-17 03:24:45 · 122 阅读 · 0 评论 -
【LeetCode】2. 两数相加
这道题刚开始有点怵因为我的链表学的一般所以我先自己构思了一下然后去看了标准答案的思路 然后自己写了一个class Solution: def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListN...原创 2019-02-16 04:18:56 · 118 阅读 · 0 评论 -
【LeetCode】134. 加油站
在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数...原创 2019-04-01 17:50:53 · 93 阅读 · 0 评论