![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双指针
fairy净
这个作者很懒,什么都没留下…
展开
-
leetcode167.两数之和 II - 输入有序数组
'''双指针问题升序的数组定义两个指针l,r 初始位置是1和n如果nums[l] + nums[l] > target r --如果nums[l] + nums[l] < target l ++'''def twoSum(numbers, target): n = len(numbers) if n ==0 : return Fal...原创 2018-10-01 16:59:21 · 118 阅读 · 0 评论 -
leetcode633 两个数的平方和
def judgeSquareSum(c): ''' 题目中是两个整数的平方和用双指针 如果是未知个数怎么求 ''' import math if c < 0: return False r = int(math.sqrt(c)) l = 0 while l <= r : p =...原创 2018-10-01 17:12:33 · 209 阅读 · 0 评论 -
leetcode125验证回文串
def isPalindrome(s): ''' 验证回文串很简单 双指针 但是字符串查找回文串比较难 ''' strs = '' if s =='': ###定义空字符是回文串 return True for i in s: if i.isdigit(): strs += i ...原创 2018-10-01 18:14:16 · 255 阅读 · 0 评论 -
leetcode18 四数之和
def fourSum(nums, target): numLen, res, d = len(nums), set(), {} if numLen < 4: return [] nums.sort() ''' 二层循环遍历任意两个元素对和存放到字典d里并把序号存起来 ''' for p in range(numLen): ...原创 2018-10-02 14:18:07 · 155 阅读 · 0 评论 -
leetcode15 三数之和
def threeSumClosest(nums,target): result = list() n = len(nums) if n < 3: return result l, r, dif = 0, 0, 0 nums.sort() for i in range(n - 2): if nums[i] &g...原创 2018-10-02 14:22:54 · 121 阅读 · 0 评论 -
leetcode 454 四数之和II
def fourSumCount( A, B, C, D): ''' 参考第18题思路 只限制与四个数组或固定个数组第时候 ''' n = len(A) d = {} count = 0 for i in range(n): for j in range(n): ...原创 2018-10-02 14:56:00 · 143 阅读 · 0 评论 -
leetcode141. 环形链表 & 142 环形链表 II
def hasCycle(self, head): """ 注意边界越界的问题 设置一个快指针和慢指针,慢指针和快指针相遇就存在环,如果有存在节点的next为None的情况没有环。 """ if not head: return False if not head.next o...原创 2018-10-04 19:05:38 · 110 阅读 · 0 评论 -
leetcode88. 合并两个有序数组
def merge(self, nums1, m, nums2, n): """ 关键点是nums1原数组的长度是m+n,肯定要在nums1上操作效率高 如果正向比较的话移动次数很多,逆向的话不需要移动 注意m,n是以1开头的 """ while m > 0 and n > 0: ...原创 2018-10-06 13:20:49 · 170 阅读 · 0 评论 -
leetcode 10
def trap(self, height): """ left_max 存左边最大的值 right存右边最大的值 left < right left移动 否则right移动 """ if not height: return 0 left,right,res = 0,...原创 2018-10-20 20:28:40 · 274 阅读 · 0 评论