- 博客(9)
- 收藏
- 关注
原创 最小生成树
最小生成树 题目传送门:1584.连接所有点的最小费用 Kruskal算法 Kruskal算法是基于贪心的MST算法。 Step1:把图里的边按照权重从小到大排序 Step2:从小到大遍历每条边,用并查集来确认这条边是否有效(连接两个非联通区域) Step3:直到所有节点都联通 class Solution: def minCostConnectPoints(self, points: List[List[int]]) -> int: def find(idx):
2021-01-19 12:00:04 92
原创 并查集
用的不多,老忘,写个Note记录下。 并查集的两个函数: find(index): 返回根节点,同时把节点从树上尽量都连到根上去 union(index1,index2): 把两个节点并起来 parent = [i for i in range(n)] def find(index): if index != parent[index]: parent[index] = find(parent[index])
2021-01-07 10:05:40 92
原创 [Leetcode] - 力扣第220场周赛
这就开博一个月了耶 然而然而,这个月里只打了两次周赛,都是五分钟打完两道题然后无了。 ????唉。。。我好菜啊。。。 重新格式化电话号码 给你一个字符串形式的电话号码 number 。number 由数字、空格 ’ '、和破折号 ‘-’ 组成。 请你按下述方式重新格式化电话号码。 首先,删除 所有的空格和破折号。 其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块: 2 个数字:单个含 2 个数字的块。 3 个数字:单个含 3 个数字的块。 4 个数
2020-12-20 21:11:27 172
原创 买卖股票的最佳时机含手续费
714.买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。 注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。 用动态规划,每天有两种状态,要么持有股票,要么没有持有股票。f(t,有)f(t,有)f(t,有)表示在第t天,持有
2020-12-17 11:05:05 134 1
原创 石子游戏打包
石子游戏 亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。 假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得比赛时返回 false 。 定义动态规划的状态 dp[i][j]:dp[i][j]:dp[i][j
2020-12-14 11:01:21 102
原创 latex小抄本
怎么写出多行下标? limk∈Sk→∞\lim\limits_{k\in\mathcal{S}\atop k\rightarrow \infty}k→∞k∈Slim \lim\limits_{k\in\mathcal{S}\atop k\rightarrow \infty} 正文\limits_{}:强制下标 \atop:叠起来
2020-12-09 19:33:03 200
原创 埃式筛/厄拉多塞筛法/Sieve_of_Eratosthenes/计数质数
今天的每日一题是计数质数。 要求统计所有小于非负整数 n 的质数的数量。 为了解这题,学到了一个古老的魔法,快速寻找质数。 搜了下百度,keywords = “prime” "python"的时候,出来的大部分都是暴力法,容易超时啊啊啊。原以为质数这种常用的东西会有包,结果一个个的全暴力,太没有美感了!(其实我一开始也写的brute force… Let’s start the advanture! In mathematics, the sieve of Eratosthenes is an an
2020-12-03 13:42:27 203
原创 [Leetcode] - 力扣第216场周赛
题目列表 1. 检查两个字符串数组是否相等 [3p] 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。 示例: 输入:word1 = [“ab”, “c”], word2 = [“a”, “bc”] 输出:true 解释: word1 表示的字符串为 “ab” + “c” -> “abc” word2 表示的字符串为 “a” + “bc” -> “ab
2020-11-22 20:23:41 173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人