双指针思想
学习带师
这个作者很懒,什么都没留下…
展开
-
LeetCode905奇偶排序数组
题目:给定一个非负整数数组 A,返回一个数组,在该数组中,A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。思路一:二遍扫描,第一遍先放偶数,第二遍放奇数,public int[] sort...原创 2019-12-07 09:49:47 · 75 阅读 · 0 评论 -
LeetCode415字符串相加(大数相加),大数相乘
题目:给定两个字符串形式的非负整数num1 和num2,计算它们的和。注意:num1 和num2的长度都小于 5100.num1 和num2 都只包含数字0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库,也不能直接将输入的字符串转换为整数形式。思路:可以通过手工来模拟加法的过程,参考https://leetcode...原创 2019-11-30 09:50:04 · 361 阅读 · 0 评论 -
LeetCode26删除数组中重复的元素
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示...原创 2019-11-03 10:13:25 · 217 阅读 · 0 评论 -
LeetCode524删除字母匹配最长单词
题目:给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = "abpcplea", d = ["ale","apple","monkey","plea"]输出: "apple"思路:一个字符串s通过删除得到另一个...原创 2019-11-06 21:55:45 · 151 阅读 · 0 评论 -
LeetCode141判断一个链表是否有环
题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。思路:给的pos啥意思?又不作为参数,写来干什么使用快慢指...原创 2019-11-06 10:00:17 · 74 阅读 · 0 评论 -
LeetCode88合并二个数组
题目:给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nu...原创 2019-11-05 12:16:03 · 67 阅读 · 0 评论 -
LeetCode680删除一个字符后是否还是回文字符串
题目:给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000思路:验证是否是回文字符串很简单,但是题目中要求是如果删除一个字符后,依然能够成为回文字符串,返回tru...原创 2019-11-05 10:32:24 · 1065 阅读 · 0 评论 -
LeetCode345反转字符串中的元音字母
题目:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。思路:可先将所有的元音字母(包括大小写放入HashSet容器中),在准备一个额外字符数组。各取字符串中的第一个字符和最后一个字符,如果容器里面原来没...原创 2019-11-04 11:35:30 · 72 阅读 · 0 评论 -
LeetCode633二个数平方和
题目:给定一个非负整数c,你要判断是否存在两个整数 a 和 b,使得a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例2:输入: 3输出: False思路:就是从0~c中找到二个整数使平方和等于c,可使用双指针,一个从头开始,一个从尾开始,但是做出来只有70%,不知道是什么原因,。。。最后参考了其他通过...原创 2019-11-04 11:26:28 · 136 阅读 · 0 评论 -
LeetCode19删除链表的倒数第n个节点
题目:给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。思路:链表操作一般边界不好处理,所以常常需要添加一个额外的节点来完成相应的功能用二个指针fast...原创 2019-11-03 10:48:58 · 72 阅读 · 0 评论 -
LeetCode167二数之和II
题目:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, ...原创 2019-11-03 09:37:22 · 93 阅读 · 0 评论