franki Blog

make a small progress every day

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月份都是在家里度过,在人心惶惶的状态下开始了远程办公,不过,也就是因为疫情的出现,才能体验远程办公的感觉,...

leetcode 28题

leetcode 28题 实现 strStr() 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。 示例1 输入: haystack = "hello", needle = "ll" 输出: 2 示例2 输入: ha...

leetcode 47题

leetcode 47题 全排列 II 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例1 输入:nums = [1,1,2] 输出: [[1,1,2], [1,2,1], [2,1,1]] 示例2 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] ...