06 2024 档案

摘要:46.携带研究材料 二维数组 题目链接 文章讲解 视频讲解 动态规划五部曲: dp[i][j]:下标i表示背包装0-i的物品(任取),j表示当前背包的最大容量,dp[i][j]表示容量为j时,装0-i的物品的最大价值 递推公式:dp[i][j] = max(dp[i-1][j], dp[i-1][j 阅读全文
posted @ 2024-06-18 16:54 深蓝von 阅读(9) 评论(0) 推荐(0) 编辑
摘要:62.不同路径 题目链接 文章讲解 视频讲解 dp[i][j]: 到达(i, j)位置有多少种方法 递推公式:dp[i][j] = dp[i-1][j] + dp[i][j-1] 初始化dp[0][j] = 1只有向右一种走法, dp[i][0] = 1只有向下一种走法; 遍历顺序:从左向右 打印d 阅读全文
posted @ 2024-06-14 22:25 深蓝von 阅读(4) 评论(0) 推荐(0) 编辑
摘要:动态规划理论基础 509.斐波那契数 题目链接 文章讲解 视频讲解 确定dp[i]含义 dp[i]表示第i个斐波那契数的值 递推公式 dp[i] = dp[i - 1] + dp[i - 2] dp数组如何初始化 dp[0] = 1, dp[1] = 1 遍历顺序 从前向后 打印dp数组 class 阅读全文
posted @ 2024-06-14 15:29 深蓝von 阅读(7) 评论(0) 推荐(0) 编辑
摘要:56.合并区间 题目链接 文章讲解 视频讲解 思路: 按左区间排序; 遍历所有区间,如果当前区间的左边界小于等于上一个区间的右边界,则合并区间(新区间的左边界为上一个区间的左边界,新区间的右边界为上一个区间的有边界和当前区间有边界中较大的一个) class Solution { public: ve 阅读全文
posted @ 2024-06-13 22:35 深蓝von 阅读(6) 评论(0) 推荐(0) 编辑
摘要:406.根据身高重建队列 题目链接 文章讲解 视频讲解 思路: 先按照身高由大到小排序,如果身高相同,比较人数(由小到大); 按照人数重构数组,将节点插入到合适的位置 class Solution { private: static bool compareByK(vector<int>& lhs, 阅读全文
posted @ 2024-06-12 17:10 深蓝von 阅读(6) 评论(0) 推荐(0) 编辑
摘要:1005.K次取反后最大化的数组和 题目链接 文章讲解 视频讲解 思路: 按绝对值从大到小排序 遍历数组,遇到负数,如果次数未用完就取反 最后如果剩余次数未用完且为奇数就将数组最后一个元素取反 class Solution { static bool myCompare(const int& lhs 阅读全文
posted @ 2024-06-10 20:51 深蓝von 阅读(8) 评论(0) 推荐(0) 编辑
摘要:122.买卖股票的最佳时机II 题目链接 文章讲解 视频讲解 思路: 每次记录当天的股票价格,如果下一天比今天的价钱高那么今天就买,这样保证每一次买股票都是赚的 否则记录下一天的股票,因为下一天的股票比今天的便宜,下一天买比今天买划算 class Solution { public: int max 阅读全文
posted @ 2024-06-08 21:42 深蓝von 阅读(15) 评论(0) 推荐(0) 编辑
摘要:455.分发饼干 题目链接 文章讲解 视频讲解 class Solution { public: int findContentChildren(vector<int>& g, vector<int>& s) { sort(g.begin(), g.end()); sort(s.begin(), s 阅读全文
posted @ 2024-06-07 22:11 深蓝von 阅读(6) 评论(0) 推荐(0) 编辑
摘要:51.N 皇后 题目链接 文章讲解 视频讲解 递归三部曲 递归函数参数 需要传入当前chessBoard和棋盘大小n,以及当前要放置皇后的行数rowvoid backtracking(vector<string>& chessBoard, int n, int row); 递归终止条件 当最后一个皇 阅读全文
posted @ 2024-06-07 17:07 深蓝von 阅读(11) 评论(0) 推荐(0) 编辑
摘要:491.非递减子序列 题目链接 文章讲解 视频讲解 层间去重: 回溯法相当于深搜,所以所以是一直递归到叶节点才开始回溯; 每次进入backtracking也就进入了搜索树的下一层,所以每进入一层需要用一个used_set来记录使用过的元素; class Solution { private: vec 阅读全文
posted @ 2024-06-06 21:52 深蓝von 阅读(4) 评论(0) 推荐(0) 编辑
摘要:93.复原IP地址 题目链接 文章讲解 视频讲解 class Solution { private: vector<string> ip; vector<string> result; public: vector<string> restoreIpAddresses(string s) { bac 阅读全文
posted @ 2024-06-06 16:24 深蓝von 阅读(6) 评论(0) 推荐(0) 编辑
摘要:39.组合总和 题目链接 文章讲解 视频讲解 class Solution { private: vector<int> combine; vector<vector<int>> result; int count = 0; public: vector<vector<int>> combinati 阅读全文
posted @ 2024-06-05 14:52 深蓝von 阅读(6) 评论(0) 推荐(0) 编辑
摘要:组合总和III 题目链接 文章讲解 视频讲解 class Solution { public: vector<vector<int>> combinationSum3(int k, int n) { vector<int> path; vector<vector<int>> result; back 阅读全文
posted @ 2024-06-04 19:31 深蓝von 阅读(4) 评论(0) 推荐(0) 编辑
摘要:回溯算法理论基础 文章讲解 视频讲解 回溯是递归的副产品,只要有回溯就会有递归 回溯的本质是琼剧,所以效率不高 回溯法可以解决的问题 组合问题 切割问题 子集问题 排列问题 棋盘问题 如何理解回溯 回溯算法的问题都可以抽象为树形结构 集合的大小就构成了书的快读,递归的深度就构成了树的深度 回溯法模板 阅读全文
posted @ 2024-06-04 12:31 深蓝von 阅读(5) 评论(0) 推荐(0) 编辑
摘要:669.修剪二叉搜索树 题目链接 文章讲解 视频讲解 class Solution { public: TreeNode* trimBST(TreeNode* root, int low, int high) { if(root == nullptr) return nullptr; // 当前值小 阅读全文
posted @ 2024-06-03 21:35 深蓝von 阅读(2) 评论(0) 推荐(0) 编辑
摘要:235.二叉搜索树的最近公共祖先 题目链接 文章讲解 视频讲解 思路:递归遍历二叉搜索树 如果当前值大于p和q的值,向左遍历 如果当前值小于p和q的值,向右遍历 否则说明当前值介于p和q之间,直接返回当前节点 class Solution { public: TreeNode* lowestComm 阅读全文
posted @ 2024-06-03 14:05 深蓝von 阅读(4) 评论(0) 推荐(0) 编辑
摘要:530.二叉搜索树的最小绝对差 题目链接 文章讲解 视频讲解 关键词: 二叉搜索树 --> 中序遍历 关于递归的返回值 由于需要遍历整棵二叉树,所以返回值为void,如果不是遍历整棵二叉树,需要在得到结果时立即返回结果,此时返回值才不为空 怎样使用两个指针pre和cur使得pre始终指向cur的前一 阅读全文
posted @ 2024-06-02 22:40 深蓝von 阅读(3) 评论(0) 推荐(0) 编辑
摘要:654.最大二叉树 题目链接 文章讲解 视频讲解 class Solution { public: TreeNode* constructMaximumBinaryTree(vector<int>& nums) { return inorderTraversal(nums, 0, nums.size 阅读全文
posted @ 2024-06-02 18:01 深蓝von 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示