jmhjmhjmh
jmhjmhjmh
全部文章
未归档
归档
标签
去牛客网
登录
/
注册
jmhjmhjmh的博客
全部文章
/ 未归档
(共22篇)
正方形中的最多点数
二分枚举所有的半边长,然后进行验证来找到合法正方形能包含的最多点数 class Solution { public: int check(long long i, vector<vector<int>>& points, string s) { ...
C++
2025-12-12
0
24
范围内整数的最大得分
用二分查找锁定最大可能的最小差值,验证该差值是否能满足每个区间的选择限制 class Solution { public: bool check(long long lim,vector<int>& start,int d) { long long now...
C++
2025-12-12
0
26
咒语和药水的成功对数
用排序 + 二分查找快速统计每个咒语对应的成功药水数量:先将药水数组排序,再对每个咒语计算所需的最小药水强度,通过二分查找定位该强度的位置,从而得到符合条件的药水数量。 class Solution { public: vector<int> successfulPairs(ve...
C++
2025-12-12
0
30
使库存平衡的最少丢弃次数
用哈希表统计当前窗口内每种物品的保留次数; 遍历每天的物品: 先尝试保留当前物品,若保留后该物品次数超过m,则丢弃 当遍历天数超过w时,滑动窗口左边界,移除i-w+1天的物品,减少其计数。 class Solution { public: int minArrivalsToDiscard(v...
C++
2025-12-12
0
20
包含所有三种字符的子字符串数目
滑动窗口 ,直接统计合法子串用滑动窗口维护[left, right]区间,保证区间内包含所有字符,当窗口满足条件时,所有以right为结尾、以[0, left-1]为起点的子串都合法,数量为left; 移动左指针缩小窗口,继续统计。 class Solution { public: int ...
C++
2025-12-12
0
35
荷马史诗
为了满足题目中每个编码都不能是另一个前缀,因此用哈夫曼树可以实现,k进制就是k叉的哈夫曼树,哈夫曼树的带权路径和就是编码长度,树高就是字符串长度。 用最小优先队列实现最优合并,核心思路是先补 0 使节点数满足 k 叉哈夫曼树的结构要求,再循环取出权值最小的 k 个节点合并,累加求权值和,记录合并后节...
C++
2025-12-04
0
34
二叉树的中序遍历
利用栈实现中序遍历,先遍历到左子树最深处并将路径节点入栈,弹出栈顶节点(根)记录值,再遍历其右子树,重复该过程直至所有节点处理完毕。 class Solution { public: vector<int> inorderTraversal(TreeNode* root) { ...
C++
2025-12-04
0
32
恢复二叉搜索树
对二叉搜索树进行中序遍历,用数组保存结点,用另一个数组保存结点的值,然后找到值错误的两个结点,然后直接交换值就行 class Solution { public: void recoverTree(TreeNode* root) { vector<int> va...
C++
2025-12-04
0
30
验证二叉搜索树
对每个结点的左子树和右子树进行递归验证是否为二叉搜索树,如果左右子树都是二叉搜索树且与根节点比较没问题,然后返回true class Solution { public: bool isValidBST(TreeNode* root) { return dfs(root, L...
C++
2025-12-04
0
26
不同的二叉搜索树 II
用分治递归生成所有合法的二叉搜索树: 在区间[left, right],我们依次选每个值i作为根节点,递归生成左子树区间和右子树区间的所有可能结构,再将左、右子树的所有组合与根节点拼接,得到当前区间的所有二叉搜索树。 class Solution { public: vector<Tr...
C++
2025-12-04
0
25
首页
上一页
1
2
3
下一页
末页