LCR 078. 合并 K 个升序链表 既然每个链表都是升序的,那么合并后的第一个节点一定是某个链表的头节点 合并后的第二个节点,可能是某个链表的头节点,也可能是第一个节点的下一个节点 所以我们需要把所有可能是下一个节点的节点放在一个集合中,并且最小的可以自动浮起来,即最小堆 /** * Definition for singly-linked l…
More content:LeetCode hot100@动态规划&多维动态规划 DP是由前一个状态推导而出,而贪心是在局部直接选择最优 DP五部曲: 确定dp数组以及下标的含义 确定递推公式(状态转移公式) dp数组如何初始化 确定遍历顺序 举例推导dp数组 01背包模板: for(int i = 0; i < weight.siz…
More content:力扣题记之贪心 121. 买卖股票的最佳时机✅ 简单贪心 也可DP class Solution { public: int maxProfit(vector<int>& prices) { int res = 0; int mny = 0; for(int i = 1; i < prices.s…
More content:LeetCode hot100@图论 大纲 深搜与广搜 并查集 最小生成树 Kruskal prim 拓扑排序 最短路算法 dijkstra(单源) Bellman_ford(单源&负权) Floyd(多源) 代码框架 dfs vector<vector<int>> result; // 保…
208.小红的二叉树构造✅ 简单数学题:每一层的值是相同的,最小层值由节点最多的最后一行决定,即全被1填充,再乘以层数即可 #include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; cout << pow(2, n - 1) * n <…
More content:LeetCode hot100@贪心 55. 跳跃游戏❌ 一开始想的是跳向最大长度之间中下标最大的,发现不行 不要拘泥于跳到哪,而是能跳到哪,即关注能跳到的范围 贪心算法局部最优解:每次取最大跳跃步数(取最大覆盖范围) 整体最优解:最后得到整体最大覆盖范围,看是否能到终点 class Solution { public: …
link:模拟笔试 - 卡码网周赛第三十六期 175. 阴阳师✅ 简单模拟 注意向上取整技巧 #include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int a, b; while(n--) { cin >> a >…
More content:力扣题记之图论 200. 岛屿数量✅ 简单岛屿问题 注意本题的grid数组类型是char 因此grid[i][j] == '1'不能简写为grid[i][j] class Solution { private: int dir[4][2] = {0, 1, 0, -1, 1, 0, -1, 0}; int …
136. 只出现一次的数字❌ 如果能用sort函数或者set容器就很简单,可惜不允许 异或解决 class Solution { public: int singleNumber(vector<int>& nums) { int res = 0; for(int num : nums) { res ^= num; } retur…
190. 偏爱的字符✅ 模拟:用map存偏爱字符,遇到非偏爱字符时同时向两边搜即可 #include<bits/stdc++.h> using namespace std; void modify(int pos, string &res, const string &str, unordered_map<char…