合集-左神算法课

摘要:题目链接:https://leetcode.cn/problems/subsets-ii/submissions/591733085/ 题意: 给你一个数组,输出不同数字的组合(若两个组合都挑一个1,一个2,无论顺序如何,只输出一个) 思路: 先排序,将不同数字分组,再讨论每组选0,1,2,...n 阅读全文
posted @ 2025-01-07 20:57 Marinaco 阅读(18) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/permutations/ 思路: 只用题目给的nums数组进行递归,swap进行交换,注意还原现场 class Solution { public: vector<vector<int>> permute(vector<int>& 阅读全文
posted @ 2025-01-08 10:26 Marinaco 阅读(18) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/number-of-islands/submissions/591894989/ 题意: 给你一个01 grid,只有上下左右都有1才能链接成一座岛屿(斜着不算),让你求能连成多少个岛屿 思路: 并查集: 把grid每个坐标转化为数 阅读全文
posted @ 2025-01-08 16:37 Marinaco 阅读(21) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/daily-temperatures/ 题意: 给你一个每日气温数组,请你确定每个位置右边是否比自己大的元素,如果无,返回0。否则,返回两者下标之差 思路: 单调栈(这就好似给了数组中每个位置做波峰或波谷的机会)(ps:单调栈一定存 阅读全文
posted @ 2025-01-10 20:22 Marinaco 阅读(31) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/sum-of-subarray-minimums/ 题意: 给定一个数组,让你求子数组最小值的和,复杂度O(N) 思路: 单调栈(获得每个位置左边比它小且离它最近的数,右边比它小且离它最近的数,那么在这之间它本身就是区间最小值) c 阅读全文
posted @ 2025-01-11 11:02 Marinaco 阅读(37) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/maximal-rectangle/description/ 题意: 给定一个只有0和1的矩阵,试求只包含1的长方形的最大面积 思路: 每行将矩阵压缩成一个高度数组,转化为求矩形最大面积 class Solution { publi 阅读全文
posted @ 2025-01-11 12:20 Marinaco 阅读(44) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/decode-string/ 题意: 嵌套递归 class Solution { public: int where; string repeat(string path,int cnt) { string ans=""; for( 阅读全文
posted @ 2025-01-11 15:18 Marinaco 阅读(20) 评论(0) 推荐(0)
摘要:int n=20;//点的个数 int m=21;//边的个数 const int maxn=25; //邻接矩阵建图 int gra1[maxn][maxn]; void build(int n,int m,int from[],int to[],int weight[]) { for(int i 阅读全文
posted @ 2025-01-11 15:47 Marinaco 阅读(31) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/course-schedule-ii/description/ 题意: 给定n门课程,规定只有学完某一个课程才能继续学下一门课程,让你输出学习顺序。如果成环,则返回空数组 思路: 拓补排序,入度删除法 需要提前准备一个indegre 阅读全文
posted @ 2025-01-11 19:09 Marinaco 阅读(19) 评论(0) 推荐(0)
摘要:测试链接:https://leetcode.cn/problems/sort-an-array/ 堆结构: 是一颗完全二叉树 分为大根堆和小根堆 大根堆:每一颗子树最大值都在子树的根部 小根堆:每一颗子树最小值都在子树的根部 每一位父亲i的两个孩子的节点位置(若存在)分别为:i*2+1,i*2+2 阅读全文
posted @ 2025-01-14 10:12 Marinaco 阅读(26) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode.cn/problems/minimum-path-sum/ 题意: 求出在二维grid中不同路径下到达终点的最小值 空压dp版本 class Solution { public: int minPathSum(vector<vector<int>>& gr 阅读全文
posted @ 2025-01-16 16:57 Marinaco 阅读(22) 评论(0) 推荐(0)
摘要:题目链接: https://leetcode.cn/problems/word-search/ 题意: 给定二维char数组,询问是否能够有路径来获得给定的字符数组 无法改为动态规划表 class Solution { public: bool exist(vector<vector<char>>& 阅读全文
posted @ 2025-01-18 12:53 Marinaco 阅读(22) 评论(0) 推荐(0)
摘要:题目链接: https://leetcode.cn/problems/longest-common-subsequence/ TLE 暴力递归+记忆化版本(基于字符串长度无优化版本)//注意text1[i1-1]==text2[i2-1] class Solution { public: int d 阅读全文
posted @ 2025-01-18 14:01 Marinaco 阅读(32) 评论(0) 推荐(0)
摘要:用于解决 范围数字和 与 单点增加 问题(复杂度O(logn)) build 方法(构造树状数组) void build(){ for(int i=1,v;i<=n;i++){ cin>>v; add(i,v); } } lowbit方法 (获取一个二进制数最低位的1的状态) int lowbit( 阅读全文
posted @ 2025-01-20 13:05 Marinaco 阅读(23) 评论(0) 推荐(0)

//雪花飘落效果