摘要:
滑动窗口(双指针) 要在字符串S里找出包含字符串T的所有字符的最小子串(注意只需要包含字符串T的所有字符),不需要子串就是T。 所以我们可以扫描一遍字符串S,找出一个满足条件包含字符串T的所有字符串子串,然后根据长度是否比之前记录的字符串长度小,更新最小子串。 扫描字符串S需要用到滑动窗口(双指针) 阅读全文
posted @ 2020-07-04 23:24
machine_gun_lin
阅读(100)
评论(0)
推荐(0)
摘要:
这道题的题意是,给出一个一维数组,数组中的元素只可能是0,1,2,分别表示红色、白色和蓝色。 我们需要做一个排序,使得0全部在数组前面,1在中间,2在后面。 (不过不能用sort函数) 方法一(常数空间,非一趟扫描) 可以用三个变量分别记录红色、白色和蓝色的出现次数,然后根据出现的次数,修改数组即可 阅读全文
posted @ 2020-07-04 22:51
machine_gun_lin
阅读(112)
评论(0)
推荐(0)
摘要:
这道题是要我们在一个二维数组里搜索某个元素target,找到了返回true,没找到返回false。 这个二维数组性质是,每一行都是升序的,且每一行的最后一个元素小于下一行的第一个元素。 都说升序和查找了,显然应该想到二分。 这题我最开始先按行二分,确定target(如果在数组里)所在的行,再对这一行 阅读全文
posted @ 2020-07-04 22:03
machine_gun_lin
阅读(132)
评论(0)
推荐(0)
摘要:
解法一(使用O(mn)空间) 可以开一个额外的二维数组,记录每个位置的元素是否已被访问过。 然后我们遍历原来的二维数组,只要没被访问过且元素为0,那么就将该元素所在的行和列的元素值置为0, 并且将这一行的所有元素都设置为已经访问过,以免之后的遍历碰到被置为0的元素也将那一行那一列的元素置为0. 这里 阅读全文
posted @ 2020-07-04 21:22
machine_gun_lin
阅读(217)
评论(0)
推荐(0)
摘要:
考虑用一个二维dp数组表示所需的最小操作次数。 dp[i][j]表示将word1的前i个字符转换为word2的前j个字符所需要的最少操作次数。 由于操作的顺序对于最后操作的结果没有影响,所以我们假设操作总是从word1的前面字符操作到word1的后面字符。 如果word1的第i个字符等于word2的 阅读全文
posted @ 2020-07-04 19:50
machine_gun_lin
阅读(153)
评论(0)
推荐(0)

浙公网安备 33010602011771号