双指针合集
nice_evil
这个作者很懒,什么都没留下…
展开
-
【leetcode系列】小菜鸡的leetcode第14题:三数/四数/五数之和...(解法全部类似)
主要为了优化时间复杂度,尽量减少循环,用到双指针 class Solution: def threesum(self,nums): #排序后如果存在a+b+c==0的情况,那么肯定数组有正有负,负数在左,正数在右 nums=sorted(nums) n=len(nums) if n==0: return [] # 特殊情况全为0 if nums==zeros(1,n):原创 2022-01-14 18:47:20 · 210 阅读 · 0 评论 -
【leetcode系列】小菜鸡的leetcode第12题:轮转数组
此题有坑,一是在原地址更新的坑nums[:],二是注意“”轮转数组“”的坑,也就是说k可以大于n=len(nums),是一个动态的循环过程,因此每一批k=n的轮回后,又变成了重复相同数组的轮转。因此结果需要k%n 对n取余。 思路图解如下: ''' 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,.原创 2022-01-13 18:25:38 · 2888 阅读 · 0 评论 -
【leetcode系列】小菜鸡的leetcode第11题:有序数组的平方
*注意一下,能用简单加减乘除的,不要用**进行幂运算,内存和速度都消耗巨大。。。比较了一下运行结果,差点哭了,慢了不止一星半点 简单题,官方归为了双指针一类。 方法1这里用了俩函数,list.sort()和sorted(),区别在于前者直接在原列表中排序,后者则开辟新的空间生成一个新的排序后的列表 解法对比如下: class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: new_num原创 2022-01-12 18:59:50 · 1604 阅读 · 0 评论