
双指针法
Thexin.
不愿付诸行动,却又想登峰造极。
展开
-
Leetcode--76. 最小覆盖子串
给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。示例:输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"说明:如果 S 中不存这样的子串,则返回空字符串 ""。如果 S 中存在这样的子串,我们保证它是唯一的答案。提交的代码:classSolution{publicStrin...原创 2020-01-17 14:45:34 · 155 阅读 · 0 评论 -
Leetcode--27. 移除元素
给定一个数组 nums和一个值 val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两...原创 2019-12-16 19:03:57 · 95 阅读 · 0 评论 -
Leetcode--904. 水果成篮
在一排树中,第 i 棵树产生tree[i] 型的水果。你可以从你选择的任何树开始,然后重复执行以下步骤:把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。移动到当前树右侧的下一棵树。如果右边没有树,就停下来。请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。你有两个篮子,每个篮子可以携带任何数...原创 2019-12-07 17:09:39 · 111 阅读 · 0 评论 -
Leetcode--923. 三数之和的多种可能
给定一个整数数组A,以及一个整数target作为目标值,返回满足 i < j < k 且A[i] + A[j] + A[k] == target的元组i, j, k的数量。由于结果会非常大,请返回 结果除以 10^9 + 7 的余数。示例 1:输入:A = [1,1,2,2,3,3,4,4,5,5], target = 8输出:20解释:按值枚举(...原创 2019-12-07 16:56:56 · 278 阅读 · 0 评论 -
Leetcode--283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。class Solution { public void moveZeroes(int[] nums) { int coun...原创 2019-11-11 15:46:29 · 80 阅读 · 0 评论 -
Leetcode--845. 数组中的最长山脉
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i< B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)...原创 2019-11-10 16:56:19 · 197 阅读 · 0 评论 -
Leetcode--925. 长按键入
你的朋友正在使用键盘输入他的名字name。偶尔,在键入字符c时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回True。示例 1:输入:name = "alex", typed = "aaleex"输出:true解释:'alex' 中的 'a' 和 'e' ...原创 2019-11-10 16:01:07 · 179 阅读 · 0 评论 -
Leetcode--713. 乘积小于k的子数组
给定一个正整数数组nums。找出该数组内乘积小于k的连续的子数组的个数。示例 1:输入: nums = [10,5,2,6], k = 100输出: 8解释: 8个乘积小于100的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于100的子数组。说明:0 ...原创 2019-11-01 11:33:27 · 143 阅读 · 0 评论 -
Leetcode--1004. 最大连续1的个数Ⅲ
给定一个由若干 0 和 1 组成的数组A,我们最多可以将K个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,...原创 2019-11-01 11:15:32 · 368 阅读 · 0 评论 -
Leetcode--80. 删除排序数组中的重复项Ⅱ
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度...原创 2019-10-31 12:50:52 · 102 阅读 · 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]]思路:双指针法要求...原创 2019-10-31 11:47:23 · 135 阅读 · 0 评论 -
Leetcode--142. 环形链表Ⅱ
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node inde...原创 2019-10-30 12:32:43 · 101 阅读 · 0 评论 -
Leetcode--141. 环形链表
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = 0输...原创 2019-10-30 11:31:09 · 101 阅读 · 1 评论 -
Leetcode--826. 安排工作以达到最大收益
有一些工作:difficulty[i]表示第i个工作的难度,profit[i]表示第i个工作的收益。现在我们有一些工人。worker[i]是第i个工人的能力,即该工人只能完成难度小于等于worker[i]的工作。每一个工人都最多只能安排一个工作,但是一个工作可以完成多次。举个例子,如果3个工人都尝试完成一份报酬为1的同样工作,那么总收益为 $3。如果一个工人不能完成任何工作,他的收益...原创 2019-10-29 14:23:54 · 192 阅读 · 0 评论 -
Leetcode--424. 替换后的最长重复字符
给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换k次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过104。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k = 1...原创 2019-10-29 12:39:24 · 162 阅读 · 0 评论 -
Leetcode--287. 寻找重复数
给定一个包含n + 1 个整数的数组nums,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2)...原创 2019-10-28 16:38:43 · 108 阅读 · 0 评论 -
Leetcode--209. 长度最小的子数组
给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试O(n log n) 时间复杂度...原创 2019-10-28 15:01:17 · 120 阅读 · 0 评论 -
Leetcode--16. 最接近的三数之和
给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).思路:双指针法本题中并没有说是连...原创 2019-10-28 14:17:48 · 108 阅读 · 0 评论 -
Leetcode--3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"w...原创 2019-10-28 11:47:31 · 114 阅读 · 0 评论