随笔分类 - Leetcode-刷题记
摘要:题目描述 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。 注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。 示例 1: 输入:s = "ADOBECODEBANC", t = "ABC"
阅读全文
摘要:这是在面试的时候写的一道题,不过当时由于把递归函数recurse里面的 <target_loc= =-1> 写成了 <target= =-1> 导致出现断错误,面完后一下子就找到bug,哎,可惜了 #include <iostream> #include <vector> #include <sta
阅读全文
摘要:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。
阅读全文
摘要:最长公共连续字串(longest common substr) 比如:“abcdefg”和“bcdfddd”的最长公共连续字串为“bcd” // 最长公共连续字串 int loggest_common_substr(string s1, string s2){ int len_s1 = s1.len
阅读全文
摘要:对于一个字符串,请设计一个高效算法,计算其中最长回文子串的长度。 给定字符串A以及它的长度n,请返回最长回文子串的长度。 测试样例: "abc1234321ab",12 返回:7 思路:Manacher 算法 https://www.cxyxiaowu.com/2869.html 算法的核心还是将原
阅读全文
摘要:数字开方,求平方根算法 二分查找 大致的逻辑是这样的: 比如对6求开方 初始化 low=0,high=6 mid=(low+hight)/6=3,3*3 = 9 > 6,那么上限high = 3, mid =(0+3)/2=1.5, 1.5*1.5 = 2.25 < 6,那么更新下限 low = 1
阅读全文
摘要:#include <iostream> #include <vector> #include <string> #include <algorithm> #include <climits> #include <deque> using namespace std; struct Node{ int
阅读全文
摘要:请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1 O(1) 复杂度,意味着min值需要采取特殊手段:双端队列:
阅读全文
摘要:/* 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 解释:我们可以按以下顺序执行: push(1), push(2), push(3), push(4), pop() -> 4, push(5), pop() -> 5, pop() ->
阅读全文
摘要:题目 这道题有意思的一点是:路径不一定得从根节点开始,也不一定得到叶子节点结束,这道题2叉树和为某一个值的路径比较像,本质上还是一道DFS类型的题目 那么因为可以从任意一个节点开始,所以我们需要遍历到每个节点作为开始,满足条件的时候结束 class Solution { private: int c
阅读全文