会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Loading
悟已往之不谏,知来者之可追。
首页
新随笔
联系
管理
1
2
3
下一页
2026年1月30日
13 0-1背包&完全背包
摘要: 0-1背包问题 有 \(n\) 个物品,第 \(i\) 个物品的体积为 \(w[i]\),价值为 \(v[i]\)。每个物品至多选一个,求体积和不超过 \(capacity\) 的最大价值和。 回溯三问 当前操作? 枚举第 \(i\) 个物品选或不选。不选,剩余容量不变;选,剩余容量减少 \(w[i
阅读全文
posted @ 2026-01-30 11:39 王仲康
阅读(6)
评论(0)
推荐(0)
2026年1月29日
12 动态规划
摘要: 状态定义?状态转移方程? 1. 打家劫舍 1.1 解题思路 理解题目:我需要选择一些数,使它们的和最大,并且选择的数字不能是相邻的。 我们先将这道题看成回溯。 考虑最后一个房子选或不选。 如果不选,问题就变成 \(n-1\) 个房子的问题。 如果选,问题就变成 \(n-2\) 个房子的问题。 回溯三
阅读全文
posted @ 2026-01-29 09:48 王仲康
阅读(3)
评论(0)
推荐(0)
2026年1月27日
11 回溯
摘要: 前言 如果要构造长度为\(2\)的字符串,可以写一个二重循环: for x in "abc" for y in "def" 外层枚举第\(1\)个字母,内层枚举第\(2\)个字母,这样可以。 但是如果要构造长度为\(3\)或者\(4\)或者不确定呢? 原问题:构造长度为\(n\)的字符串\(\rig
阅读全文
posted @ 2026-01-27 10:28 王仲康
阅读(2)
评论(0)
推荐(0)
2026年1月12日
10 二叉搜索树
摘要: 1. 验证二叉搜索树 1.1 解题思路 1.1.1 方法一:前序遍历 根据定义,二叉树的左右子树一定也是二叉搜索树。 因此: 原问题:判断一棵树是否是二叉搜索树 子问题:判断一棵树的左子树/右子树是否是二叉搜索树 在递归时,除了传入节点,还需要传入该节点所处开区间的范围。 对于每个节点,先判断它的节
阅读全文
posted @ 2026-01-12 09:49 王仲康
阅读(14)
评论(0)
推荐(0)
2026年1月7日
09 二叉树 & 递归
摘要: 1. 计算二叉树的最大深度 1.1. 解题思路 所谓二叉树的深度,指的是从根节点到最远叶子结点的最长路径上节点的个数。 思考整棵树与左右子树的关系。 整棵树的最大深度 = \(max\)(左子树的最大深度,右子树的最大深度) + 1 原问题:计算整棵树的最大深度 子问题:计算左/右子树的最大深度 程
阅读全文
posted @ 2026-01-07 08:50 王仲康
阅读(14)
评论(0)
推荐(0)
2026年1月1日
07 删除链表
摘要: 1 删除链表中的节点 1.1 解题思路 由于要删除的节点一定不是末尾节点,且又不能存在于链表中。所以我们的做法可以是:将node的next指针所指向的下一个节点的值赋值给node,删除node->next即可。 1.2 代码实现 点击查看代码 class Solution { public: voi
阅读全文
posted @ 2026-01-01 09:43 王仲康
阅读(3)
评论(0)
推荐(0)
2025年12月30日
06 快慢指针
摘要: 1 链表的中间结点 1.1 代码实现 点击查看代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullpt
阅读全文
posted @ 2025-12-30 09:01 王仲康
阅读(6)
评论(0)
推荐(0)
2025年12月26日
05 反转链表
摘要: 1 反转链表 1.1 代码实现 迭代做法 点击查看代码 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(null
阅读全文
posted @ 2025-12-26 08:55 王仲康
阅读(6)
评论(0)
推荐(0)
2025年12月24日
04 二分查找
摘要: 1. 在排序数组中查找元素的第一个和最后一个位置 1.1 解题思路 暴力做法:遍历数组,时间复杂度 \(O(n)\) 利用数组有序的性质二分查找: 1.2 代码实现 点击查看代码 class Solution { public: // 左闭右闭写法 int lower_bound(vector<in
阅读全文
posted @ 2025-12-24 09:32 王仲康
阅读(19)
评论(0)
推荐(0)
2025年12月19日
03 滑动窗口
摘要: 1. 长度最小的子数组 1.1 解题思路和方法 1.1.1 暴力做法 对于每个元素,可以枚举其左端点,不断向右扩展,直到>=target; 同理,对于每个元素,可以枚举其右端点,不断向左扩展,直到>=target。 点击查看代码 class Solution { public: int minSub
阅读全文
posted @ 2025-12-19 09:24 王仲康
阅读(8)
评论(0)
推荐(0)
1
2
3
下一页
公告