
双指针
MD_
不拼一下 你怎么知道你不会成功!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 611. 有效三角形的个数【通过排序减少时间复杂度】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。数组里整数的范围为 [0, 1000]。解题报告暴力解决的时间复杂度为 O(n3)O(n^3)O(n3)可以通过排序减少时间复杂度。排序后,当选定两个数之后:如果第三个数的索引边界原创 2020-07-28 11:27:22 · 259 阅读 · 0 评论 -
Leetcode 392. 判断子序列【简单的字符串匹配, 涉及一对一和多对一的匹配问题】
文章目录问题描述解题报告实现代码参考资料问题描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = “abc”, t = “ahbgdc”返回 true.示例原创 2020-07-27 09:17:15 · 357 阅读 · 0 评论 -
双指针系列-Leetcode 四数之和
文章目录问题描述解题报告实现代码参考资料问题描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1, 0, 0, 1],[-2, -1, 1, 2],原创 2020-05-18 15:26:09 · 120 阅读 · 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]]解题报告略。实现代码class Solution {public: vecto原创 2020-05-18 14:51:21 · 240 阅读 · 0 评论 -
双指针系列-几道简单的 Leetcode 题目
文章目录Leetcode 面试题 10.01. 合并排序的数组问题描述解题报告实现代码Leetcode 面试题 02.02. 返回倒数第 k 个节点问题描述解题报告实现代码Leetcode 26. 删除排序数组中的重复项问题描述解题报告实现代码Leetcode Leetcode 27. 移除元素问题描述解题报告实现代码总结参考资料Leetcode 面试题 10.01. 合并排序的数组问题描述给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A原创 2020-05-17 00:46:43 · 594 阅读 · 0 评论 -
双指针系列-Leetcode 524. 通过删除字母匹配到字典里最长单词
文章目录问题描述解题报告实现代码参考资料问题描述给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = “abpcplea”, d = [“ale”,“apple”,“monkey”,“plea”]输出:“apple”解题报告很明显是双指针法。遍历 d 中的每一个字符串 d[i],将其与 s 进行比较。指针 p 指 向s的头部,指针原创 2020-05-14 21:11:18 · 233 阅读 · 0 评论 -
Leetcode 11. 盛最多水的容器【双指针法,解释非常清晰】
文章目录问题描述解题报告实现代码参考资料问题描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。解题报告这是第一次看到题目,想到双指针,想到指...原创 2020-04-18 09:16:57 · 268 阅读 · 1 评论 -
Leetcode 986. 区间列表的交集【双指针,解释非常详细】
文章目录问题描述解题报告实现代码参考资料问题描述给定两个由一些闭区间组成的列表,每个区间列表都是成对不相交的,并且已经排序。返回这两个区间列表的交集。(形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合,而 a <= x <= b。两个闭区间的交集是一组实数,要么为空集,要么为闭区间。例如,[1, 3] 和 [2, 4] 的交集为 [2, 3]。)解...原创 2020-04-17 17:42:45 · 322 阅读 · 1 评论 -
Leetcode 面试题21. 调整数组顺序使奇数位于偶数前面【双指针法】
文章目录问题描述解题报告实现代码参考资料问题描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。解题报告使用双指针,将左边的偶数和右边的奇数交换。代码写的很垃圾。。。实现代码垃圾代码class Solution {public: vector<int> exchange(vector<...原创 2020-04-12 21:59:23 · 290 阅读 · 0 评论