Python3,双指针,注意K为0的情况。 class Solution: def lengthOfLongestSubstringKDistinct(self, s: str, k: int) -> int: if k == 0: return 0 charMap = {} result = 0 ...
分类:
其他好文 时间:
2020-01-31 15:49:02
阅读次数:
57
11. Container with Most Water 使用双指针i和j,分别指向数组的两端。每次最大值是res = max(res, (j - i) * min(height[j], height[i]))。每次根据比较height[i]和height[j]的大小来更新i和j。 只有下一个he ...
分类:
其他好文 时间:
2020-01-31 01:04:57
阅读次数:
92
1. Two sum 因为只有一个solution(pair),所以一旦发现解返回即可。使用unordered_map或者unordered_set存当前数字,找complement. 2. Add two number 双指针,使用dummy作为返回链表。 3. Longest substring ...
分类:
其他好文 时间:
2020-01-30 09:17:40
阅读次数:
68
双指针算法本质上就是将具有单调性的算法复杂度为O(N^2)的朴素算法通过双指针优化到O(n)的一种优化方法。是一种十分常用的算法。 设计双指针算法我们一般先写出它的朴素算法,然后按照模板: for( int i = 0, j = 0 ; i < n ; i ++) { //check()是按照题目逻 ...
分类:
编程语言 时间:
2020-01-29 19:51:43
阅读次数:
83
区间问题: LeetCode56:已知多个区间,将这些区间有相交的区间进行合并,输出有序的合并结果。 排序问题: LeetCode75:荷兰国旗问题,多种解法,双指针法巧妙。 关于排序问题,面试肯定基本不考基本的排序,因为C++有sort,因此需要考虑一些特殊的情况:尤其是桶排序,计数排序,堆排序, ...
分类:
其他好文 时间:
2020-01-29 19:48:32
阅读次数:
76
"题目" 题意:找出数组里两个数字之和为指定数字的两个下标。 题解:双指针 ...
分类:
其他好文 时间:
2020-01-27 15:37:35
阅读次数:
56
题目如上:意思就是,比较两个字符串是否从头匹配到尾,如果p[i]为'?',则可以匹配单个字符,如果p[i]为'*',则可以匹配零个或任意字符。 双指针算法:scur与pcur分别为字符串s和字符串p当前匹配的位置,sstar与pstar分别为当p[i]为‘*'时两个字符串的对应位置。 判断能否匹配的 ...
分类:
其他好文 时间:
2020-01-27 00:10:39
阅读次数:
61
题意 给出$n$个垂直线段,相邻两线段之间的距离是$1$,选出一个区间,使得区间两端线段中较短的那根长度乘区间长度最大。 思路 想法1:枚举没对线段作为区间端点的情况。时间复杂度$O(n^2)$,太暴力。 想法2:双指针法。 思想依据 :因为两段之间形成的区域总会受到其中较短的那条长度的限制,此外, ...
分类:
其他好文 时间:
2020-01-26 23:52:24
阅读次数:
55
链表又来了,可见ListNode 这个数据结构出现之频繁。 本题求解链表中是否存在环路,让我去看看题解怎么区分环路。 盲猜双指针法 两种方法: 1.set,比用List快很多 2.快慢指针 知识点: 1.链表中假定所有元素都不重复,所以只要出现重复元素就说明有循环 空间复杂度>O(1) 1.因为 之 ...
分类:
其他好文 时间:
2020-01-26 17:36:01
阅读次数:
59
1 题目 "Leetcode第18题" ,给定一个数组与一个target,找出数组中的四个数之和为target的不重复的所有四个数. 2 暴力 m为固定的数,left与right就是双指针,根据"三数"之和判断与目标值的大小移动双指针. 最小剪枝就是首先计算"三数"的最小值,若大于目标值就可以跳过, ...
分类:
其他好文 时间:
2020-01-26 14:32:50
阅读次数:
56