Leetcode 双指针
文章平均质量分 62
Leetcode 双指针题目
努利!奋斗!
这个作者很懒,什么都没留下…
展开
-
Leetcode 141:Linked List Cycle python
Leetcode 141:Linked List Cycle题目解法1解法2题目Given a linked list, determine if it has a cycle in it.To represent a cycle in the given linked list, we use an integer pos which represents the position (0-i...原创 2019-12-25 06:42:34 · 688 阅读 · 0 评论 -
Leetcode 11. Container With Most Water (cpp)
题目解法:双指针假设现在考虑left位置和right位置的bar形成的区域,这个时候储存的水量由两边中高度小的决定,那么很显然要获得比现在更大的储存量,只有可能移动小的那边。移动大的那边只会让答案变小class Solution {public: int maxArea(vector<int>& height) { if(height.empty()){ return 0; } int l = 0,原创 2021-01-03 08:43:23 · 237 阅读 · 0 评论 -
Leetcode 15. 3Sum (python)
题目解法1:hash table + sort triplets这解法T了,应该是T在遍历之前储存的pair那边。不过我个人感觉这种做法比较直观class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: pairs = collections.defaultdict(list) n = len(nums) ans = set()原创 2020-12-27 09:28:24 · 408 阅读 · 0 评论 -
Leetcode 4. Median of Two Sorted Arrays (python+cpp)
题目解法1:双指针版本一:time complexity O(m+n),space complexity O(m+n)class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int m = nums1.size(), n = nums2.size(); int p1 = 0, p2 =原创 2020-12-26 08:19:23 · 156 阅读 · 1 评论 -
Leetcode Longest Substring Without Repeating Characters (cpp)
题目解法1:sliding window利用滑动窗口,使得窗口内始终不包含重复元素顺序移动右边界,如果右边界所指元素已经在窗口出现,那么移动做指针知道右边界所指元素被移出窗口现在窗口内已经不包含右边界所指元素,更新右边界所指元素的出现次数,并且更新最大长度需要注意这边有符号和空格,所以要注意其他符号的ASCII值class Solution {public: int lengthOfLongestSubstring(string s) { vector<in原创 2020-12-25 07:10:47 · 86 阅读 · 0 评论 -
Leetcode 42. Trapping Rain Water (cpp)
题目解法1:暴力这题关键在于,每个位置能盛放多少水由这个位置左边的最大值和右边的最大值中的最小值决定的。到每个位置也只需要计算当前位置能盛放多少水即可。知道了这点,剩下的就是怎么优化罢了,原理都一样class Solution {public: int trap(vector<int>& height) { int n=height.size(); int ans = 0; for (int i=0;i<n;i++)原创 2020-12-23 10:20:53 · 151 阅读 · 0 评论 -
Leetcode 1695. Maximum Erasure Value (python+cpp)
题目解法:双指针+prefix_sumclass Solution: def maximumUniqueSubarray(self, nums: List[int]) -> int: prefix_sum = [0] tmp = 0 for num in nums: tmp += num prefix_sum.append(tmp) l = 0原创 2020-12-22 12:10:48 · 327 阅读 · 0 评论 -
力扣 16.06. 最小差
题目题目链接:https://leetcode-cn.com/problems/smallest-difference-lcci/解法1:排序+双指针class Solution: def smallestDifference(self, a: List[int], b: List[int]) -> int: a.sort() b.sort() p1 = p2 = 0 ans = float('inf')原创 2020-12-19 02:55:34 · 164 阅读 · 1 评论 -
Leetcode 1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit (python)
题目解法1:二分判定+sliding window由于所求的这个最大长度一定唯一而且会在连续的整数中产生,所以可以用二分判定选取一个特定长度,判断是否存在特定长度的subarray符合条件对于每次判定,使用sliding window的方法,所以每次判定复杂度O(n)总的复杂度O(nlogn)class Solution: def longestSubarray(self, nums: List[int], limit: int) -> int: n = le原创 2020-11-23 08:56:28 · 362 阅读 · 0 评论 -
Leetcode 1616. Split Two Strings to Make Palindrome (python+cpp)
Leetcode 1616. Split Two Strings to Make Palindrome题目:解法1:暴力,TLE解法2:O(n)题目:解法1:暴力,TLEclass Solution: def checkPalindromeFormation(self, a: str, b: str) -> bool: if len(a) == 1 or len(b) == 1: return True n = len(a)原创 2020-10-21 13:45:58 · 324 阅读 · 0 评论 -
Leetcode1610. Maximum Number of Visible Points (python+cpp)
Leetcode 1610. Maximum Number of Visible Points题目解析:错误解法正确解法:题目解析:错误解法这道题简单来说就是雷达扫点的问题。一开始我想入了一种错误思路。就是类似于动雷达的方式然后判断在当前的范围内有多少个点这样。但是问题是对于雷达应该转任意角度都可以,所以遍历这个转的角度并不行class Solution: def visiblePoints(self, points: List[List[int]], angle: int, locati原创 2020-10-07 10:16:56 · 550 阅读 · 0 评论 -
leetcode 160. Intersection of Two Linked Lists python
leetcode 160. Intersection of Two Linked Lists python题目解法1:brutal force解法2:使用栈解法3:双指针法解法4:利用hashmap的思想题目Write a program to find the node at which the intersection of two singly linked lists begins....原创 2019-12-27 02:18:30 · 353 阅读 · 0 评论 -
Leetcode 234. Palindrome Linked List
Leetcode 234. Palindrome Linked List题目解法1:利用list储存linked list解法2:双指针+反转列表题目Given a singly linked list, determine if it is a palindrome.Example 1:Input: 1->2Output: falseExample 2:Input: 1-&g...原创 2019-12-31 01:07:34 · 157 阅读 · 0 评论 -
Leetcode 524. Longest Word in Dictionary through Deleting (python+cpp)
Leetcode 524. Longest Word in Dictionary through Deleting题目解法:灵活运用双指针题目解法:灵活运用双指针总体思路比较简单,遍历d,判断每个d中的target是不是符合条件,并选择长度最长中lexicographical order最小的保存这边主要对比一下python和C++在比较lexicographical order的不同。...原创 2020-04-15 08:15:52 · 492 阅读 · 0 评论 -
Leetcode 680. Valid Palindrome II (python+cpp)
Leetcode 680. Valid Palindrome II题目解法题目解法这是一道easy题,不过解法比较灵活,这边提供一种比较非常规的方法利用双指针从两边开始找,首先定位到mismatch的位置这个时候定位到的mismatch位置有可能在左边,也有可能是在右边,所以用一个helper函数判断一遍是否是回文只要有人以一边是回文则满足条件python代码如下class ...原创 2020-04-15 06:05:12 · 210 阅读 · 0 评论 -
Leetcode 76. Minimum Window Substring (python+CPP)
Leetcode 76. Minimum Window Substring题目解法:sliding window题目解法:sliding window直接上leetcode 官方solutionWe start with two pointers, leftleft and rightright initially pointing to the first element of th...原创 2020-04-14 09:35:21 · 327 阅读 · 0 评论 -
Leetcode 88. Merge Sorted Array (python + cpp)
Leetcode 88. Merge Sorted Array题目解析python代码C++版本题目解析用双指针法较容易解决,这里不详述python代码class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ ...原创 2020-04-03 09:46:48 · 125 阅读 · 1 评论 -
Leetcode 142. Linked List Cycle II(python+cpp)
Leetcode 142. Linked List Cycle II题目解析解法1:利用set解法2:Floyd's Tortoise and Hare题目Given a linked list, return the node where the cycle begins. If there is no cycle, return null.To represent a cycle in t...原创 2020-01-03 03:14:30 · 342 阅读 · 0 评论