随笔分类 -  Leetcode-javascript

摘要:先搜索一下二维数组,如果一个位置是1.这是要判断,当前节点上下左右的位置是否为1,是的话开始合并;最后出来的连通的分量就是要求的岛屿数量: 3g // 定义并查集类 class UnionFind { // 构造函数初始化并查集 constructor(n) { this.parent = new 阅读全文
posted @ 2025-02-22 15:39 KooTeam 阅读(1) 评论(0) 推荐(0) 编辑
摘要:前端高手进阶 3 6 '[3170] 开篇词:带你一起筑建前端工程师的“护城河”.mp4' +plane B/S架构 亿级数据量的复杂系统 前端工程师的困惑与挑战 常见误解:·工作年限=级别(能力)(中年危机!)· 框架/工具使用得越多越好(使用过多种技术,但都只停留在表面) 前端工程师的困惑与挑战 阅读全文
posted @ 2025-02-16 21:19 KooTeam 阅读(60) 评论(0) 推荐(0) 编辑
摘要:547. 省份数量 为了正确计算省份的数量,我们需要使用一种方法来识别和合并连通分量。虽然题目要求只使用数组和 Set 或 Map,我们可以使用深度优先搜索(DFS)来实现这一点。 使用 DFS 来计算省份的数量: DFS +合并连通分量 /** * 计算省份的数量 * @param {number 阅读全文
posted @ 2025-02-15 22:58 KooTeam 阅读(0) 评论(0) 推荐(0) 编辑
摘要:451.根据字符出现频率排序 to tree /** * @param {string} s * @return {string} */ var frequencySort = function(s) { if(!s)return let map=new Map(); for(let i of s) 阅读全文
posted @ 2025-02-03 22:28 KooTeam 阅读(1) 评论(0) 推荐(0) 编辑
摘要:剑指Offer 40.最小的k个数 / LCR 159. 库存管理 III /冒泡排序,从小到大,找出来k个数、并返回 // map arr map+数组:map记录每个元素出现的次数/频率;数组进行排序 var inventoryManagement = function(stock, cnt) 阅读全文
posted @ 2025-01-25 16:41 KooTeam 阅读(1) 评论(0) 推荐(0) 编辑
摘要:LeetCode:78.子集 解题思路要求:1、所有子集;2、没有重复元素。网信2268731有出路、有死路。考虑使用回溯算法。 解题步骤用递归模拟出所有情况。8731保证接的数字都是后面的数字。收集所有到达递归终点的情况,并返回。 时间复杂度:O(2^N),因为每个元素都有两种可能(存在或不存在) 阅读全文
posted @ 2025-01-19 19:37 KooTeam 阅读(4) 评论(0) 推荐(0) 编辑
摘要:LeetCode:46.全排列 /** * @param {number[]} nums * @return {number[][]} */ var permute = function (nums) { let res = []; let compose = (path) => { if (pat 阅读全文
posted @ 2025-01-19 19:26 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑
摘要:买卖股票的最佳时机 IV 类比j为奇数是买,偶数是卖的状态。 /** * @param {number[]} prices * @return {number} */ ​ dp[0]: 无操作; ​ dp[1]: 第一次买入; ​ dp[2]: 第一次卖出; ​ dp[3]: 第二次买入; ​ dp 阅读全文
posted @ 2025-01-19 17:48 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑
摘要:123. 买卖股票的最佳时机 III /** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { if(prices.length 1) return 0; let init=null 阅读全文
posted @ 2025-01-19 17:17 KooTeam 阅读(2) 评论(0) 推荐(0) 编辑
摘要:买卖股票的最佳时机 /** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { let max=0; for(let i = 0; i < prices.length; i++){ f 阅读全文
posted @ 2025-01-19 16:55 KooTeam 阅读(2) 评论(0) 推荐(0) 编辑
摘要:LeetCode:122.买卖股票的最佳时机II math tc g4d .. 解题思路前提:上帝视角,知道未来的价格。局部最优:见好就收,见差就不动,不做任何长远打算。 解题步骤新建一个变量,用来统计总利润。遍历价格数组,如果当前价格比昨天高,就在昨天买,今天卖,否则就不交易。遍历结束后,返回所有 阅读全文
posted @ 2025-01-19 16:19 KooTeam 阅读(2) 评论(0) 推荐(0) 编辑
摘要:LeetCode:455.分饼干 解题思路局部最优:既能满足孩子,还消耗最少。先将“较小的饼干”分给“胃囗最小”的孩子。 解题步骤对饼干数组和胃口数组升序排序。遍历饼干数组,找到能满足第一个孩子的饼干。然后继续遍历饼干数组,找到满足第二、三、….、n个孩子的饼干。 /** * @param {num 阅读全文
posted @ 2025-01-18 22:24 KooTeam 阅读(4) 评论(0) 推荐(0) 编辑
摘要:973.最接近原点的K个点 var kClosest = function(points, k) { let n=points.length; if(k>n){ return points; } let dists=new Array(n).fill(null); for(let i=0;i<n;+ 阅读全文
posted @ 2025-01-18 22:09 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑
摘要:337. 打家劫舍 III var rob = function(root) { function dfs(node) { if (!node) return [0, 0]; // [不偷当前节点的最大金额, 偷当前节点的最大金额] const left = dfs(node.left); cons 阅读全文
posted @ 2025-01-16 22:50 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑
摘要:213. 打家劫舍 II var rob = function(nums) { if (!Array.isArray(nums) || nums.some(isNaN)) { throw new Error("Invalid input: nums must be an array of numbe 阅读全文
posted @ 2025-01-16 22:32 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑
摘要:LeetCode:198.打家劫舍 解题思路f(k)=从前k个房屋中能偷窃到的最大数额。Ak=第k个房屋的钱数。 f(k) = max(f(k- 2) + Ak, f(k-1))。考虑使用动态规划。 1+2max1 math method true step 公式/+-p/pr /** * @par 阅读全文
posted @ 2025-01-16 20:01 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑
摘要:LeetCode:70.爬楼梯 关系式 math…. 解题思路爬到第n阶可以在第n-1阶爬1个台阶,或者在第n-2阶爬2个台阶。F(n) =F(n-1)+ F(n-2)。使用动态规划。 解题步骤定义子问题:F(n)=F(n-1)+F(n-2)。反复执行:从2循环到n,执行上述公式。 /** * @p 阅读全文
posted @ 2025-01-16 17:01 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑
摘要:LeetCode:100.相同的树 两个树:根节点的值相同,左子树相同,右子树相同。符合“分、解、合”特性。考虑选择分而治之。 分:获取两个树的左子树和右子树。解:递归地判断两个树的左子树是否相同,右子树是否相同。合:将上述结果合并,如果根节点的值也相同,树就相同。 /** * Definition 阅读全文
posted @ 2025-01-16 16:06 KooTeam 阅读(8) 评论(0) 推荐(0) 编辑
摘要:LeetCode:226.翻转二叉树 解题思路先翻转左右子树,再将子树换个位置。符合“分、解、合”特性。考虑选择分而治之。 解题步骤分:获取左右子树。解:递归地翻转左右子树。合:将翻转后的左右子树换个位置放到根节点上。 /** * Definition for a binary tree node. 阅读全文
posted @ 2025-01-16 15:18 KooTeam 阅读(2) 评论(0) 推荐(0) 编辑
摘要:69. x 的平方根 ‌开平方根的方法主要有以下几种‌: ‌分母有理化法‌:这种方法适用于处理无理数的平方根。具体步骤包括: 设 a=ba = \sqrt{b}a=b,其中 aaa 和 bbb 均为非负实数。 对 aaa 进行分母有理化:a=b−1b+1a = \frac{b-1}{b+1}a=b+ 阅读全文
posted @ 2025-01-15 20:27 KooTeam 阅读(3) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示