
LeetCode
wenxi.da007
AI爱好者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【leetcode】【简单】27. 移除元素【双指针:快指针+慢指针】
题目概述:题目注意点:如果使用remove的话,每用一次复杂度是O(N) ,其中N =len(nums)解题思路:完整代码:# 终于我自己写了一次,但是貌似速度很慢,因为每次remove,都会使得一堆迁移,增加复杂度def removeElement(self, nums, val): for i in reversed(nums): if i == val:nums.remove(i) return len(nums)为提高效率,还是看看大神的效果原创 2020-05-11 22:49:39 · 196 阅读 · 0 评论 -
【leetcode】【简单】26. 删除排序数组中的重复项思路方法【排序+双指针】
题目概述:题目注意点:需要排序解题思路:先排序双指针移动赋值完整代码:class Solution: def removeDuplicates(self, nums: List[int]) -> int: if not nums: return 0 i = 0 for j in range(1, len(nums)): if nums[i] != nums[j]:原创 2020-05-11 22:17:11 · 144 阅读 · 0 评论 -
【leetcode】【简单】21. 合并两个有序链表【递归调整指针】
题目概述:题目注意点:通过比较尾部大小,修改Next的指向只修改指针,不修改内容,真是秀儿啊~解题思路:完整代码:# 这里是系统给的连表内置功能# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def mergeT原创 2020-05-11 11:54:15 · 158 阅读 · 0 评论 -
【leetcode】【简单】20. 有效的括号【堆栈】
题目概述:题目注意点:初始化最好有个占位符解题思路:建立堆栈,这里使用列表只存储左边的括号,遇到配对的就出栈当最后只剩下标志符的时候,说明正确完整代码:class Solution: def isValid(self, s: str) -> bool: dic = {'{': '}', '[': ']', '(': ')', '?': '?'} stack = ['?'] # 初始化,防止出现删除出错的情况 for原创 2020-05-10 16:42:35 · 169 阅读 · 0 评论 -
【leetcode】【中等】16. 最接近的三数之和【三指针移动】
题目概述:题目注意点:解题思路:完整代码:class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: nums, r, end = sorted(nums), float('inf'), len(nums) - 1 for c in ra...原创 2020-05-08 22:31:55 · 114 阅读 · 0 评论 -
【leetcode】【中等】15. 三数之和【三指针移动】
题目概述:题目注意点:这题没有简单的写法了,一眼看上去就好麻烦。说实话这个题我会放弃,看不懂,记不住解题思路:先固定一个数字,然后用两个指针,往中间查找完整代码:class Solution: def threeSum(self, nums: [int]) -> [[int]]: nums.sort() res, k = [], 0...原创 2020-05-06 22:31:58 · 123 阅读 · 0 评论 -
【leetcode】【简单】14. 最长公共前缀【垂直对比,水平扫描】
题目概述:题目注意点:首先审题,是公共前缀,不是字串。我就看错了,想复杂了。strs = [“flower”,“flow”,“flight”]*strs 【参数解包】,单独操作不显示结果,可以理解为 ((“flower”),(“flow”),(“flight”))列表解包效果:字典解包效果:解题思路:for i in zip(*strs): 输出效果见图:...原创 2020-05-06 20:37:58 · 180 阅读 · 0 评论 -
【leetcode】【简单】13. 罗马数字转整数【字典搜索】
题目概述:题目注意点:每次和右边数据比较大小,然后确认增加还是减去如果是MCCC,这里需要确认右边大于左边才可以增加,等于也要减去解题思路:完整代码:class Solution(object): def romanToInt(self, s): if not s: return 0 # 建立罗马数字 到 阿拉...原创 2020-05-05 21:56:59 · 135 阅读 · 0 评论 -
【leetcode】【中等】12. 整数转罗马数字【贪心算法+人造字典】
题目概述:题目注意点:注意:当有多种组合的时候,使用最大的情况,而不是多个小组合的相加。这个思路可以用于找钱,最少的纸张数,找的钱正好。解题思路:构造字典结构采用贪心选择组建字符串完整代码:class Solution: def intToRoman(self, num: int) -> str: # 把阿拉伯数字与罗马数字可能出现的所有...原创 2020-05-05 21:18:46 · 148 阅读 · 0 评论 -
【leetcode】【中等】11. 盛最多水的容器【双指针法】
题目概述:题目注意点:双指针,哪边桶壁短,移动哪边指针。只需要遍历数组一遍解题思路:哪边桶壁短,移动哪边指针,向内移动。面积计算公式:短边值 * 指针之间的距离完整代码:时间复杂度 O(N),双指针遍历一次底边宽度 N。空间复杂度 O(1),指针使用常数额外空间。class Solution: def maxArea(self, height: List[int]...原创 2020-05-05 20:07:49 · 141 阅读 · 0 评论 -
【leetcode】【简单】9. 回文数
题目概述:题目注意点:这个大佬已经无敌了。。。我无话可说,一行代码?!解题思路:简单方法,反转字符串和自己做对比完整代码:# 方法一class Solution: def isPalindrome(self, x: int) -> bool: return str(x) == str(x)[::-1] # 反转以后进行对比 ...原创 2020-05-05 19:24:13 · 155 阅读 · 0 评论 -
【leetcode】【中等】6. Z 字形变换 【flag翻转读取方向】
题目概述:题目注意点:flag使用,正向移动和反向移动切换的标志。-1和1之间反复切换,作为移动步长。解题思路:理解大佬的思路:字符是如何组合的完整代码:class Solution: def convert(self, s: str, numRows: int) -> str: if numRows < 2: return s ...原创 2020-05-05 18:14:22 · 208 阅读 · 0 评论 -
【leetcode】【中等】5. 最长回文子串【中心扩散+动态规划法】
题目注意点:解题思路:完整代码:原创 2020-05-05 17:33:45 · 201 阅读 · 0 评论 -
【leetcode】3. 无重复字符的最长子串【中等】python版本
题目注意点:因为R-L+1等于总长度,所以每次R+1以后,在计算maxlength解题思路:移动滑窗的方式,分别创建L和R,每次移动以后记录最大值maxlength完整代码:class Solution: def lengthOfLongestSubstring(self, s: str) -> int: length=l=r=0 w...原创 2020-05-05 12:03:39 · 342 阅读 · 0 评论 -
【leetcode】【简单】7. 整数反转【位运算解法】
题目注意点:解题思路:完整代码:原创 2020-05-05 18:44:27 · 532 阅读 · 0 评论 -
【leetcode】【简单】1. 两数之和 【哈希表方法 或 python字典索引方法】
题目注意点:使用字典存储下标的方式:优势:查找是否存在其中,dict速度比List遍历要快很多倍。python中in在list和dict中查找效率比较解题思路:target依次减去nums列表中的元素,看看是否存在dict中,如果不存在,就吧这个元素和下标加入到dict中。存在就返回两个下标。字典存放技巧:list的值当key,下标当做valclass Solution: d...原创 2020-05-05 08:44:08 · 283 阅读 · 0 评论