
算法学习
文章平均质量分 69
作用太大了销夜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2022.4.7 力扣-连接所有点的最小费用-最小生成树练习
目录题目描述:样例:方法一(普利姆算法-prim算法)本文参考:(5条消息) 数据结构--最小生成树详解_Ouyang_Lianjun的博客-优快云博客_最小生成树Prim and Kruskal(并查集) - 连接所有点的最小费用 - 力扣(LeetCode) (leetcode-cn.com)题目描述:给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用原创 2022-04-07 21:46:12 · 1093 阅读 · 1 评论 -
2021.11.21 力扣-省份数量-并查集练习
题目描述:有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。方法一:cla原创 2021-11-21 23:56:11 · 357 阅读 · 0 评论 -
2021.11.25 力扣-每日一题-可怜的小猪
目录题目链接:力扣本文参考:1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪? - 知乎题目描述:例子1例子2最终推论最终代码:题目链接:力扣本文参考:1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪? - 知乎题目描述:有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过原创 2021-11-25 20:15:25 · 808 阅读 · 0 评论 -
2021.11.18 力扣-每日一题-最大单词长度乘积
题目描述:给定一个字符串数组words,找到length(word[i]) * length(word[j])的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。方法一:class Solution {public: int maxProduct(vector<string>& words) { int ans = 0; for (int i = 0; i < w...原创 2021-11-18 18:39:52 · 145 阅读 · 0 评论 -
在代码题中遇到的常见问题和小技巧
自己在刷力扣的过程中,有时常在同一个问题上困惑,有时会碰到令自己眼前一亮的小技巧,于是专门写个博客收集记录一下,随时更新。原创 2021-11-08 10:35:19 · 1345 阅读 · 0 评论 -
2021.10.24 力扣-网络延迟时间-关于最短路径的几种算法
题目描述:有 n 个网络节点,标记为1到 n。给你一个列表times,表示信号经过 有向 边的传递时间。times[i] = (ui, vi, wi),其中ui是源节点,vi是目标节点, wi是一个信号从源节点传递到目标节点的时间。现在,从某个节点K发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回-1 。方法一(朴素dijkstra算法):class Solution {public: const int inf = IN...原创 2021-10-24 14:48:45 · 759 阅读 · 0 评论 -
2021.9.27 二叉树的递归与非递归遍历方式汇总
前序优先遍历:递归:class Solution {public: void recur(TreeNode* cur, vector<int>& ans) { if (cur == nullptr) { return; } ans.push_back(cur->val); recur(cur->left, ans); recur(原创 2021-09-28 10:37:49 · 685 阅读 · 1 评论 -
2021.9.3 利用滚动数组解决01背包问题
昨天学习了(准确地说是复习)01背包问题,今天学习利用滚动数组来进一步精简代码,今天所参考的是这篇文章:https://mp.weixin.qq.com/s/M4uHxNVKRKm5HPjkNZBnFA从递推公式 f[i][j] = max(f[i-1][j] , f[i-1][j-weight[i]] + value[i])中可以看出,利用滚动数组的思想,完全可以将i这一层去掉,从而:f[j] = max(f[j] , f[j-weight[i]) + value[i]),所以只需使用一维数组即可。原创 2021-09-03 22:19:28 · 316 阅读 · 0 评论 -
2021.9.2 经典01背包问题
之前所碰到的dp的题目,很多都可以从当中窥见背包问题的影子,所以决定补习一下有关背包问题的知识。今天参考的是这篇文章:https://mp.weixin.qq.com/s/FwIiPPmR18_AJO5eiidT6w题目描述:有N件物品和一个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。背包最大重量为4。 重量 价值 物品0 1 15 物品1原创 2021-09-03 00:30:18 · 141 阅读 · 0 评论