算法
各种算法
QIANYIFAN010203
这个作者很懒,什么都没留下…
展开
-
leetcode:1788.Maximize the Beauty of the Garden
链接:https://leetcode-cn.com/problems/maximize-the-beauty-of-the-garden/先计算一下除去负数后的前缀和,使用map记录索引即可。C++代码:class Solution {public: int maximumBeauty(vector<int>& flowers) { int n = flowers.size(); vector<int>pre_sum(n+1,原创 2021-04-03 10:39:10 · 391 阅读 · 0 评论 -
leetcode:10. 正则表达式匹配(动态规划)
链接:https://leetcode-cn.com/problems/regular-expression-matching/创建二维数组dpdpdp,dp[i][j]dp[i][j]dp[i][j]代表字符串s的前iii个字符和字符串p的前jjj个字符能否匹配。考虑dp[i][j]dp[i][j]dp[i][j]的状态转移方程:当p[j]p[j]p[j]为字母时,它必须等于s[i]s[i]s[i],且dp[i−1][j−1]dp[i-1][j-1]dp[i−1][j−1]为truetruetrue原创 2021-02-17 22:34:41 · 284 阅读 · 0 评论 -
leetcode: 37. 解数独(回溯)
链接:https://leetcode-cn.com/problems/sudoku-solver/对于每一个空白格,判断1−91-91−9是否能填入,若有一个能填入则先填上进入下一层递归(填下一个空格),若都不能填入则回溯到上一格重新填。C++代码:class Solution {public: bool check(vector<vector<char>>& board,int row,int col, char num) { //检查能原创 2021-02-17 22:22:48 · 267 阅读 · 0 评论 -
leetcode: 1035. 不相交的线(动态规划)
链接:https://leetcode-cn.com/problems/uncrossed-lines/可以看做最长公共子序列问题,动态规划解决。dp[i][j]dp[i][j]dp[i][j]表示A[0,...,i]A[0,...,i]A[0,...,i]和B[0,...,j]B[0,...,j]B[0,...,j]子问题的答案。C++代码:class Solution {public: int maxUncrossedLines(vector<int>& A, vec原创 2021-02-07 21:56:27 · 268 阅读 · 0 评论 -
leetcode: 40. 组合总和 II(回溯)
链接:https://leetcode-cn.com/problems/combination-sum-ii/这道题和全排列II类似,都是有重复元素的回溯题。比如原数组为[1,1,6,7][1,1,6,7][1,1,6,7],目标数为8,我们要保证结果中只有一个[1,7][1,7][1,7]且含有数组[1,1,6][1,1,6][1,1,6]。因此不能简单地跳过重复元素。使用一个标志数组来表示重复元素的使用情况,若为1则表示此元素已被选中,并且进入了下一层递归,此时我们可以选用与它重复的元素(保证[1,1原创 2021-01-30 21:24:57 · 131 阅读 · 0 评论 -
leetcode:31. 下一个排列
链接:https://leetcode-cn.com/problems/next-permutation/这道题的重点是搞清楚如何生成下一个排列:从右至左遍历数组,找到第一个满足 a[i]<a[i+1]a[i]<a[i+1]a[i]<a[i+1]的下标iii在a[i]a[i]a[i]的右边找到比它大的最小元素,互换这两个元素将数组下标i+1i+1i+1至末尾元素倒置java代码:class Solution { public void nextPermutation原创 2021-01-11 21:40:44 · 103 阅读 · 0 评论 -
leetcode: 22. 括号生成(回溯)
链接:https://leetcode-cn.com/problems/generate-parentheses/使用回溯(DFS)枚举所有可能生成的情况,剪去所有左括号数量小于右括号数量的子过程。java代码:class Solution { List<String>ans = new ArrayList(); public List<String> generateParenthesis(int n) { backtrack("",0,0,n原创 2021-01-11 21:37:09 · 185 阅读 · 1 评论 -
并查集博客
python版本:https://blog.csdn.net/guoziqing506/article/details/78752557C++版本:https://blog.csdn.net/qq_41593380/article/details/81146850https://zhuanlan.zhihu.com/p/93647900例题:https://blog.csdn.net/guo15331092/article/details/78702686?tdsourcetag=s_pctim原创 2020-06-30 17:38:30 · 137 阅读 · 0 评论