上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要: 首先是括号序列是否合法的判断 一个经典的判断形式是从左到右计数,( 为 1, ) 为 -1 ,中途如果小于 0 了,那么不合法,最后如果是 0 ,那么合法,否则也不合法 接着回到这一题 删除最小数量的无效括号,使得输入的字符串有效 1 <= s.length <= 25 长度并不大,可以考虑搜索 搜 阅读全文
posted @ 2026-04-01 23:42 rdcamelot 阅读(10) 评论(0) 推荐(0)
摘要: 这里就不能像前一个版本一样用简单的后缀策略了 考虑 dp ,实际上和打家劫舍有些像,因为都是依据前面的状态这轮有些操作不能做 所以就是怎么设计状态 如果按照操作来设计的话就是买入或者卖出,但一个时间点也可能没有进行任何操作 所以可以是这样三个 另一种思路就是看目前手上有没有股票 这样设计的出发点是因 阅读全文
posted @ 2026-03-31 22:04 rdcamelot 阅读(11) 评论(0) 推荐(0)
摘要: 区间 DP 一开始会想到一些贪心的思路,比如找最大值,或者找中间值 但是从小样本比如 2、3 个出发就会发现似乎没有一个固定的规律,因为和具体的数值或者说左右邻居都有关 于是难点就在于这个修改后对后续状态是有影响的,因此正向就不好做了,因为我们不知道它对未来状态的影响,或者相当于我们要知道枚举现在选 阅读全文
posted @ 2026-03-31 21:10 rdcamelot 阅读(17) 评论(0) 推荐(0)
摘要: 就是在买入后在最高价卖出 因此找后缀最大值 class Solution { public: int maxProfit(vector<int>& a) { int n = a.size(); int mx = -1; int ans = 0; for (int i = n - 1; i >= 0; 阅读全文
posted @ 2026-03-31 15:45 rdcamelot 阅读(9) 评论(0) 推荐(0)
摘要: 树形dp 类似的形式,只是这次放到了树上,或者说,和它相邻的前驱节点的个数增加了 我们仍然是考虑每个节点选还是不选 如果选,那么子节点一定不选 如果不选,那么子节点是可以选也可以不选 树的话就不妨显式的 dp 数组,用 dfs 回传的信息作为子节点的信息,并据此来计算当前节点的情况 /** * De 阅读全文
posted @ 2026-03-30 23:57 rdcamelot 阅读(20) 评论(0) 推荐(0)
摘要: 考虑进阶 O(n) 也就是基本需要从前面已有的结果中得到了 这种形式就是 dp 考虑转移 转移的原则是简单,就是我们怎么从前面已经求好的数,结合当前的信息,得到这个数的结果 一种想法是右移,因为右移后的数一定小于它本身,这样我们只需要根据末尾是 0 还是 1 来判断这个数就可以了 dp[i] = d 阅读全文
posted @ 2026-03-30 19:22 rdcamelot 阅读(26) 评论(0) 推荐(0)
摘要: 找出现频率前 k 高的元素 首先显然要去统计每个元素的出现次数 有了出现次数后,相当于每个元素它的权值 这样我们是要找数组中 k 个最大的元素 因为不能直接排序,所以要么使用堆,要么直接桶存储相关的信息 class Solution { public: vector<int> topKFrequen 阅读全文
posted @ 2026-03-30 14:29 rdcamelot 阅读(19) 评论(0) 推荐(0)
摘要: 感觉和括号或者计算式子比较像 因此用栈去模拟 每次碰到 ']' ,就处理好这个 '[' ']' 包裹的式子 处理好后仍然放到栈中,因为可能会被更大的 '[' ']' 包裹 整体就是模拟 class Solution { public: string decodeString(string s) { 阅读全文
posted @ 2026-03-29 22:32 rdcamelot 阅读(14) 评论(0) 推荐(0)
摘要: 比较直观的想法就是建图,遇到查询就 dfs 跑一下图 因为题目保证了答案不冲突,所以直接跑就可以 考虑 dfs 实际上是自底向上考虑,也就是父节点得到子节点的什么信息,结合自身节点的信息来得到答案 class Solution { public: vector<double> calcEquatio 阅读全文
posted @ 2026-03-29 00:49 rdcamelot 阅读(18) 评论(0) 推荐(0)
摘要: 每个人在它之前要有指定的大于它的人存在 题目保证有解 因为关注的是大于它的个数 换句话说,有点拓扑排序的形式,但是因为大于它的不是指定的一个元素,所以没法比如连边建图之类的形式 那么既然这样,干脆就从大到小排序,逐个放入,因为这样所有在当前数组中的元素,都是满足现在要插入的这个元素的需求,只需要找到 阅读全文
posted @ 2026-03-28 23:21 rdcamelot 阅读(20) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页