随笔分类 - Leetcode-javascript
摘要:/** * @param {number} n * @return {boolean} */ var isHappy = function(n) { let pre=n,cur=getNext(n); while(cur!==pre && cur!==1){ pre=getNext(pre) cur
阅读全文
摘要:var detectCycle = function(head) { if(!head)return null; let pre=head,cur=head; while(cur&&cur.next){ pre=pre.next; cur=cur.next.next; if(pre cur){ le
阅读全文
摘要:685.冗余连接 4:03 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = new Arr
阅读全文
摘要:765.情侣牵手 3:32 //遍历row数组,每次都去取出来两个人,我们知道正常的情侣他的编号从0开始的 //一堆正确的情侣就是一个是偶数一个是奇数;并且奇数=偶数+1;和奇数/2.==偶数/2;这个时候才是情侣;否则就需要将两个编号除以2之后的结果进行联通,进行交换次数: //当N-1对配对成功
阅读全文
摘要:721.账户合并 2:19:44 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = new
阅读全文
摘要:1202.交换字符串中的元素 1:42 1交换 2.按着字典序排序 3.拼接字符串 1.根据这个二维数组pairs,获取可以交换的字母,然后可以交换的字母组成一组。 2.对组内的字母进行排序。 3.接着根据字符串中组号获取我们组内最小的字符进行拼接。最后得到的字符串就是我们所需要的进行排过序的字符串
阅读全文
摘要:947.移除最多的同行或同列石头 0:46:04 //1,要求每个石头横纵坐标上除了本身外,不能存在其他的石头。我们可以把同一个横坐标/竖坐标上的石头看作是一个联通的; //2,每次获取两个石头的坐标(x,y),然后进行判断,如果两块石头处于同一个横坐标/竖坐标,我们就进行合并,直到遍历完整个数组;
阅读全文
摘要:思路:数字必须是连起来的,间隔必须是1,最长的连起来的数字有多长,把这个长度返回 1.先从数组里面取出一个数,n判断n-1是否存在:如果存在,接着判断n-2是否存在:接着判断,直到n-x不存在,就到了我们数组的最前面:那么这个时候 从x 到n这个区间,就是前面最长的数字长度;接着判断 n+1是存在的
阅读全文
摘要:1319.连通网络的操作次数 2:24 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = n
阅读全文
摘要:684.冗余连接 2:10 // 定义并查集类 class UnionFind{ // 构造函数初始化并查集 constructor(n){ this.parent = new Array(n).fill(0).map((item,index)=>index) this.rank = new Arr
阅读全文
摘要:990.等式方程的可满足性 1:40… /等式的可传递性;小写zASCII=97; class UnionFind { // 构造函数初始化并查集 constructor(n) { this.parent = new Array(n).fill(0).map((item, index) => ind
阅读全文
摘要:先搜索一下二维数组,如果一个位置是1.这是要判断,当前节点上下左右的位置是否为1,是的话开始合并;最后出来的连通的分量就是要求的岛屿数量: 3g // 定义并查集类 class UnionFind { // 构造函数初始化并查集 constructor(n) { this.parent = new
阅读全文
摘要:前端高手进阶 3 6 '[3170] 开篇词:带你一起筑建前端工程师的“护城河”.mp4' +plane B/S架构 亿级数据量的复杂系统 前端工程师的困惑与挑战 常见误解:·工作年限=级别(能力)(中年危机!)· 框架/工具使用得越多越好(使用过多种技术,但都只停留在表面) 前端工程师的困惑与挑战
阅读全文
摘要:547. 省份数量 为了正确计算省份的数量,我们需要使用一种方法来识别和合并连通分量。虽然题目要求只使用数组和 Set 或 Map,我们可以使用深度优先搜索(DFS)来实现这一点。 使用 DFS 来计算省份的数量: DFS +合并连通分量 /** * 计算省份的数量 * @param {number
阅读全文
摘要:451.根据字符出现频率排序 to tree /** * @param {string} s * @return {string} */ var frequencySort = function(s) { if(!s)return let map=new Map(); for(let i of s)
阅读全文
摘要:剑指Offer 40.最小的k个数 / LCR 159. 库存管理 III /冒泡排序,从小到大,找出来k个数、并返回 // map arr map+数组:map记录每个元素出现的次数/频率;数组进行排序 var inventoryManagement = function(stock, cnt)
阅读全文
摘要:LeetCode:78.子集 解题思路要求:1、所有子集;2、没有重复元素。网信2268731有出路、有死路。考虑使用回溯算法。 解题步骤用递归模拟出所有情况。8731保证接的数字都是后面的数字。收集所有到达递归终点的情况,并返回。 时间复杂度:O(2^N),因为每个元素都有两种可能(存在或不存在)
阅读全文
摘要:LeetCode:46.全排列 /** * @param {number[]} nums * @return {number[][]} */ var permute = function (nums) { let res = []; let compose = (path) => { if (pat
阅读全文
摘要:买卖股票的最佳时机 IV 类比j为奇数是买,偶数是卖的状态。 /** * @param {number[]} prices * @return {number} */ dp[0]: 无操作; dp[1]: 第一次买入; dp[2]: 第一次卖出; dp[3]: 第二次买入; dp
阅读全文
摘要:123. 买卖股票的最佳时机 III /** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { if(prices.length 1) return 0; let init=null
阅读全文

浙公网安备 33010602011771号