franki Blog

make a small progress every day

leetcode 69题

leetcode 69题 x 的平方根 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例1: 输入: 4 输出: 2 示例2: 输入: 8 输出: 2 说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 思路 ...

leetcode 1054题

leetcode 1054题 距离相等的条形码 在一个仓库里,有一排条形码,其中第 i 个条形码为 barcodes[i]。 请你重新排列这些条形码,使其中两个相邻的条形码 不能 相等。 你可以返回任何满足该要求的答案,此题保证存在答案。 示例1: 输入:[1,1,1,2,2,2] 输出:[2,1,2,1,2,1] 示例2: 输入:[1,1,1,1,2,2,3,3] 输出:[1...

leetcode 378题

leetcode 378题 有序矩阵中第K小的元素 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8, 返回 13。 思路 ...

leetcode 451题

leetcode 451题 给定一个字符串,请将字符串里的字符按照出现的频率降序排列 示例 1: 输入: "tree" 输出: "eert" 解释: 'e'出现两次,'r'和't'都只出现一次。 因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。 示例 2: 输入: "cccaaa" 输出: "cccaaa" 解释: 'c'和'a'都出现三次。此...

实现并查集-05

并查集 05 现实生活中,社交网络,计算机网络,如何知道两两之间是否存在联系,就是要通过并查集的方式去寻找出他们是否有根节点来确定。如果有则认为他们是有联系的,否则无。 第五版并查集 路径压缩 (path compression) 代码 class UnionFindFive { constructor(size) { this.parent = new A...

实现并查集-04

并查集 04 现实生活中,社交网络,计算机网络,如何知道两两之间是否存在联系,就是要通过并查集的方式去寻找出他们是否有根节点来确定。如果有则认为他们是有联系的,否则无。 第四版并查集 高度低的树指向高度高的树 代码 class UnionFindFour { constructor(size) { // parent[i]表示第i个元素所指向的父节点 ...

实现并查集-03

并查集 03 现实生活中,社交网络,计算机网络,如何知道两两之间是否存在联系,就是要通过并查集的方式去寻找出他们是否有根节点来确定。如果有则认为他们是有联系的,否则无。 第三版并查集 使用节点个数少的节点指向节点个数多的节点 缩减查看时间,合理进行union操作 代码 class UnionFindThree { constructor(size) { /...

实现并查集-02

并查集 02 现实生活中,社交网络,计算机网络,如何知道两两之间是否存在联系,就是要通过并查集的方式去寻找出他们是否有根节点来确定。如果有则认为他们是有联系的,否则无。 第二版并查集 快速合并 (quick union) 代码 class UnionFindTwo { constructor(size) { // 使用一个数组构建一颗指向父节点的树 ...

实现并查集-01

并查集 01 现实生活中,社交网络,计算机网络,如何知道两两之间是否存在联系,就是要通过并查集的方式去寻找出他们是否有根节点来确定。如果有则认为他们是有联系的,否则无。 第一版并查集 快速查找 (quick find) 代码 class UnionFindOne { constructor(size) { // 本质是一个数组 this.id...

总结2020展望2021

辞新迎旧,过去与未来 开局 2020的开端有点魔幻,一场突如其来的疫情打乱了每个人的节奏,人们头上笼罩着各种不安定的乌云,每个人都付出很多,不管是在任何岗位上,疫情尚未结束,生活还在继续,在即将过去的2020,很有必要进行一次总结。 总结 回顾2020,整个春节乃至整个2月份都是在家里度过,在人心惶惶的状态下开始了远程办公,不过,也就是因为疫情的出现,才能体验远程办公的感觉,...