![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode-双指针
进击的CV
一起聊聊图像处理
展开
-
LeetCode-双指针-26 删除排序数组中的重复项
删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原...原创 2020-06-25 16:35:20 · 110 阅读 · 0 评论 -
LeetCode-双指针-141 环形链表
双指针在链表的操作中比较常见,应该作为一种常用的思路记住。还以上面的图为例,我们设置两个指针从head开始遍历,规定两个指针的前进速度不一样,分别称为快、慢指针,如下图所示,slow指针每次前进一个,fast指针每次前进两个节点。因为fast指针每次前进两个,一定比slow指针先到达环的入口处。而当slow指针进入环的时候,fast指针已经经过了两个节点,如下图所示。这个时候,我们将这个过程想象成400m跑步的追及问题。如果存在环的话,因为fast指针速度更快,一定会追上slow指针。而如果fast...原创 2020-06-25 00:00:01 · 126 阅读 · 0 评论 -
LeetCode-双指针-344 反转字符串
反转字符串分析:直接用双指针public String reverseString(String s) { char[] word = s.toCharArray(); int i = 0; int j = s.length() - 1; while (i < j) { char temp = word[i]; word[i] = word[j]; word[j] = temp; i++; j--; } return new String(word);原创 2020-06-24 23:58:12 · 82 阅读 · 0 评论 -
LeetCode-双指针-29.两数相除
解答:一开始想到的思路是用最普通的使用减法来代替除法,但是这样做效率不高导致部分样例超时,因此采用将divisor移位,同时商相应增加的思想来解决,执行时间会比用减法快不少。class Solution {public: int divide(int dividend, int divisor) { if(dividend==INT_MIN && divisor==-1) return INT_MAX; if(dividend==..原创 2020-06-21 10:47:48 · 152 阅读 · 0 评论 -
LeetCode-双指针-27.移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,1,2,2,原创 2020-06-21 11:07:42 · 257 阅读 · 0 评论 -
LeetCode-双指针-28.实现 strStr() 函数
题干实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例1:输入: haystack = "hello", needle = "ll"输出: 2示例2:输入: haystack = "aaaaa", needle = "bba"输出: -1说明:当needle是空字符串时,我们应当返回什么值呢?这是一...原创 2020-06-19 21:50:47 · 135 阅读 · 0 评论 -
LeetCode-双指针-26. 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1原创 2020-06-19 21:45:49 · 101 阅读 · 0 评论 -
leetcode-双指针-19.删除链表的倒数第N个节点
class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { int count=0;//存放链表长度 ListNode *p=head; while(p)//计算链表长度 { count++; p=p->next; } p=head; ...原创 2020-06-19 00:00:50 · 81 阅读 · 0 评论 -
leetcode-双指针-18.四数之和
链接如下转载 2020-06-18 23:56:14 · 100 阅读 · 0 评论 -
LeetCode-双指针-16.最接近的三数之和
博主说,暂时没想好。。原创 2020-06-18 23:54:00 · 66 阅读 · 0 评论 -
LeetCode-双指针-15.三数之和
给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。样例例1:输入:[2,7,11,15] 输出:[]例2:输入:[-1,0,1,2,-1,-4] 输出:[[-1, 0, 1],[-1, -1, 2]]注意事项在三元组(a, b, c),要求a <= b <= c。vector<vector<int> > threeSum(vector<int> &nums)原创 2020-06-18 23:51:42 · 90 阅读 · 0 评论 -
LeetCode-双指针-11.盛最多水的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为49。示例输入 [1,8,6,2,5,4,8,3,7]输出 49...原创 2020-06-18 23:48:52 · 104 阅读 · 0 评论 -
LeetCode-双指针-3.无重复字符的最长子串
https://blog.csdn.net/qq_32391345/article/details/106818015原创 2020-06-18 23:44:36 · 121 阅读 · 0 评论