随笔分类 -  LeetCode / LeetCode专题总结

摘要:背包问题本质上是求取全组合问题,可做的选择在外循环,遍历的范围在内循环 ###一. 0-1背包问题 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 该类型题目的特点是:**每种物品仅有一件,可以选择放或不放**。直接回溯搜索的时间 阅读全文
posted @ 2023-08-19 03:33 失控D大白兔 编辑
摘要:遍历时,贪心选择权重最高的值,同时将没有选择的信息保留(优先队列),以便反悔替换 有时存在两个维度,按其中一个维度排序,另一个维度反悔贪心 ####1. 魔塔游戏 反悔贪心 ``` class Solution { public: int magicTower(vector& nums) { lon 阅读全文
posted @ 2023-08-18 20:11 失控D大白兔 编辑
摘要:### 一. 集合运算基础 使用二进制表示集合的选取状态 同样我们能快速的运用二进制实现一些遍历、交集、补集的操作 也能使用二进制存储对应状态,实现动态规划和剪枝 ####1. 集合与集合运算 ``` A&B //求集合交集操作 A|B //求集合并集操作 A&∼B //做差,在集合A中剔除B的元素 阅读全文
posted @ 2023-06-16 01:09 失控D大白兔 编辑
摘要:本质上就是**动态规划**,只需记录位数和前一个数的状态,其后满足条件的个数是固定的 数位dp还要多记录一个受限状态,以及前面全为0的特殊处理状态 处理范围内的数时,相当于利用前缀和的思想进行处理 我们可以用f(n)表示[0,n]的所有满足条件的个数,我们对于[l,r] 区间内满足条件的个数,就可以 阅读全文
posted @ 2023-06-04 17:59 失控D大白兔 编辑
摘要:一般采用回溯法思想,但需要将问题进行转化,同时采用动态规划减小时间复杂度 ####1. [分割等和子数组](https://www.cnblogs.com/929code/p/16453098.html) ####2. [零钱兑换](https://www.cnblogs.com/929code/p 阅读全文
posted @ 2023-06-02 15:17 失控D大白兔 编辑
摘要:###1. [滑动谜题](https://www.cnblogs.com/929code/p/17436699.html) ###2. [转化为全零矩阵的最少反转次数](https://www.cnblogs.com/929code/p/17436196.html) ###3. [推箱子](http 阅读全文
posted @ 2023-05-27 14:32 失控D大白兔 编辑
摘要:###一. [区间合并、插入、重叠数](https://www.cnblogs.com/929code/p/16369464.html) ###二. [区间内满足条件的点对、区间和、偏序关系数(树状数组和前缀和)](https://www.cnblogs.com/929code/p/17366099 阅读全文
posted @ 2023-05-19 00:37 失控D大白兔 编辑
摘要:####1. 重新格式化字符 给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同 class Solution { public: string reformat(string s) { int digits=0; for( 阅读全文
posted @ 2022-08-11 20:05 失控D大白兔 编辑
摘要:####1. 寻找两个正序数组的中位数 ####2. 两数相除 ####3. 快速幂 ####4. 搜索旋转排序数组 ####5. 数组中的逆序对 ####6. 在排序数组中查找元素的第一个和最后一个位置 class Solution { public: vector<int> searchRang 阅读全文
posted @ 2022-07-30 20:55 失控D大白兔 编辑
摘要:####1. 基本计算器 ####2. 串的模拟操作 ####3. 字符串相乘 ####4. 旋转图像 ####5. 螺旋矩阵 ####6. 矩阵置零 ####7. 搜索二维矩阵 ####8. 对角线遍历 ####9. 复写零 ####10. 二维网格迁移 阅读全文
posted @ 2022-07-27 20:08 失控D大白兔 编辑
摘要:###一. 串的查找 ####1. [最长回文子串(中心扩散/动态规划)](https://www.cnblogs.com/929code/p/16250463.html) ####2. [最长无重复子串(双指针)](https://www.cnblogs.com/929code/p/1627584 阅读全文
posted @ 2022-05-16 08:27 失控D大白兔 编辑
摘要:树一般使用递归方式来拆分成子问题 ####1. 合并二叉树 class Solution { public: TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) { if(!root1&&!root2) return nullptr; if( 阅读全文
posted @ 2022-05-16 08:15 失控D大白兔 编辑
摘要:####1. 两数相加 两数相加(尾插法) class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *head = nullptr, *tail = nullptr; int ca 阅读全文
posted @ 2022-05-14 19:59 失控D大白兔 编辑

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