力扣
平时刷的力扣题
Cupid510
这个作者很懒,什么都没留下…
展开
-
js——Excel 表中某个范围内的单元格标题
Excel 表中某个范围内的单元格标题原创 2022-08-31 15:41:42 · 252 阅读 · 0 评论 -
js - 宝石与石头
宝石与石头原创 2022-08-22 11:07:18 · 160 阅读 · 0 评论 -
js-算术三元组的数目
算术三元组的数目原创 2022-08-22 10:47:56 · 336 阅读 · 0 评论 -
js - 拆分数位后四位数字的最小和
拆分数位后四位数字的最小和原创 2022-08-22 10:35:16 · 303 阅读 · 0 评论 -
js-第一个出现两次的字母
如果a的第二次出现比b的第二次出现在字符串中的位置更靠前,则认为字母a在字母b之前出现两次。字母‘c’是第一个出现两次的字母,因为在所有字母中,‘c’第二次出现的下标是最小的。给你一个由小写英文字母组成的字符串s,请你找出并返回第一个出现两次的字母。字母‘a’在下标0、5和6处出现。字母‘c’在下标2、3和7处出现。只有字母‘d’出现两次,所以返回‘d’。字母‘b’在下标1和4处出现。输入s=“abccbaacz”...原创 2022-08-01 15:56:06 · 410 阅读 · 0 评论 -
js 125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串示例 2:输入: “race a car”输出: false解释:“raceacar” 不是回文串提示:1 <= s.length <= 2 * 105字符串 s 由 ASCII 字符组成原创 2022-05-16 16:30:09 · 429 阅读 · 0 评论 -
js 119. 杨辉三角 II
给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: rowIndex = 3输出: [1,3,3,1]示例 2:输入: rowIndex = 0输出: [1]示例 3:输入: rowIndex = 1输出: [1,1]/** * @param {number} rowIndex * @return {number[]} */var getRow = function(rowInd原创 2022-05-16 16:16:44 · 197 阅读 · 0 评论 -
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 // 给
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。// 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 var rob = function (nums) { var len = nums.length if (!len) return 0 const arr = [nums[0], M原创 2021-11-17 09:31:06 · 159 阅读 · 0 评论 -
给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 // 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。 // 请找到和
给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。// 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。// 请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。 var kSmallestPairs = function (nums1, nums2, k) { let res = [] let sum = new Map() let count = 0 nums原创 2021-11-17 09:31:39 · 734 阅读 · 0 评论 -
最大单词长度乘积
给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。示例 1:输入: [“abcw”,“baz”,“foo”,“bar”,“xtfn”,“abcdef”]输出: 16解释: 这两个单词为 “abcw”, “xtfn”。示例 2:输入: [“a”,“ab”,“abc”,“d”,“cd”,“bcd”,“abcd”]输出: 4解释: 这原创 2021-11-17 09:56:36 · 138 阅读 · 0 评论 -
javaScript 1252. 奇数值单元格的数目
给你一个 m x n 的矩阵,最开始的时候,每个单元格中的值都是 0。另有一个二维索引数组 indices,indices[i] = [ri, ci] 指向矩阵中的某个位置,其中 ri 和 ci 分别表示指定的行和列(从 0 开始编号)。对 indices[i] 所指向的每个位置,应同时执行下述增量操作:ri 行上的所有单元格,加 1 。ci 列上的所有单元格,加 1 。给你 m、n 和 indices 。请你在执行完所有 indices 指定的增量操作后,返回矩阵中 奇数值单元格 的数目。示例原创 2021-12-04 10:55:48 · 578 阅读 · 0 评论 -
javaScript -- 496. 下一个更大元素 I
给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更原创 2021-12-02 09:00:54 · 264 阅读 · 0 评论 -
javaScript 561. 数组拆分 I
给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。返回该 最大总和 。示例 1:输入:nums = [1,4,3,2]输出:4解释:所有可能的分法(忽略元素顺序)为:(1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3(1, 3), (2, 4) -> min(1, 3) +原创 2021-12-03 16:16:55 · 555 阅读 · 0 评论 -
javaScript---2089. 找出数组排序后的目标下标
给你一个下标从 0 开始的整数数组 nums 以及一个目标元素 target 。目标下标 是一个满足 nums[i] == target 的下标 i 。将 nums 按 非递减 顺序排序后,返回由 nums 中目标下标组成的列表。如果不存在目标下标,返回一个 空 列表。返回的列表必须按 递增 顺序排列。示例 1:输入:nums = [1,2,5,2,3], target = 2输出:[1,2]解释:排序后,nums 变为 [1,2,2,3,5] 。满足 nums[i] == 2 的下标是 1原创 2021-12-03 15:32:21 · 310 阅读 · 0 评论 -
javaScript 151. 翻转字符串里的单词
给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例 1:输入:s = “the sky is blue”输出:“blue is sky the”来源:力扣(LeetCode)var reverseWords原创 2021-12-01 16:22:29 · 88 阅读 · 0 评论 -
javaScript--506. 相对名次
给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:名次第 1 的运动员获金牌 “Gold Medal” 。名次第 2 的运动员获银牌 “Silver Medal” 。名次第 3 的运动员获铜牌 “Bronze Medal” 。从名次第 4 到第 n 的运动员,只能获得他们的名次编原创 2021-12-02 10:20:47 · 85 阅读 · 0 评论 -
javaScript 804. 唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如:‘a’ 对应 “.-” ,‘b’ 对应 “-…” ,‘c’ 对应 “-.-.” ,以此类推。为了方便,所有 26 个英文字母的摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–…原创 2021-12-04 09:13:28 · 77 阅读 · 0 评论 -
javaScript---080. 含有 k 个元素的组合
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例 1:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]/** * @param {number} n * @param {number} k * @return {number[][]} */var combine = function(n, k) { var res = [] let nums = []原创 2021-12-03 15:13:28 · 235 阅读 · 0 评论 -
javaScript 字符串压缩
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:“aabcccccaaa”输出:“a2b1c5a3”来源:力扣(LeetCode)/** * @param {string} S * @return {string} */var compressString = function(S) {原创 2021-12-06 14:37:13 · 2781 阅读 · 0 评论 -
javaScript 2057. 值相等的最小索引
给你一个下标从 0 开始的整数数组 nums ,返回 nums 中满足 i mod 10 == nums[i] 的最小下标 i ;如果不存在这样的下标,返回 -1 。x mod y 表示 x 除以 y 的 余数 。示例 1:输入:nums = [0,1,2]输出:0解释:i=0: 0 mod 10 = 0 == nums[0].i=1: 1 mod 10 = 1 == nums[1].i=2: 2 mod 10 = 2 == nums[2].所有下标都满足 i mod 10 == nums原创 2021-12-03 17:22:08 · 333 阅读 · 0 评论 -
javaScript 17.19. 消失的两个数字
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?以任意顺序返回这两个数字均可。示例 1:输入: [1]输出: [2,3]示例 2:输入: [2,3]输出: [1,4]/** * @param {number[]} nums * @return {number[]} */var missingTwo = function(nums) { let res = [] nums.sort((a,原创 2021-11-30 12:00:27 · 203 阅读 · 0 评论 -
javaScript 1572. 矩阵对角线元素的和
给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。示例 1:输入:mat = [[1,2,3],[4,5,6],[7,8,9]]输出:25解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25请注意,元素 mat[1][1] = 5 只会被计算一次。/** * @param {number[][]} mat * @return {number} */var diagonalSum = funct原创 2021-12-03 17:05:54 · 531 阅读 · 0 评论 -
javaScript 1991. 找到数组的中间位置
给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。中间位置 middleIndex 是满足 nums[0] + nums[1] + … + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + … + nums[nums.length-1] 的数组下标。如果 middleIndex == 0 ,左边部分的和定义为 0 。类似的,如果原创 2021-12-01 14:05:20 · 562 阅读 · 0 评论 -
javaScript 038. 每日温度
来源:力扣(LeetCode)请根据每日 气温 列表 temperatures ,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0] var dailyTemperatures = function (temperatures) { let res =原创 2021-11-30 10:58:22 · 325 阅读 · 0 评论 -
javaScript 1877. 数组中最大数对和的最小值
一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对和 。比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(1+5, 2+3, 4+4) = max(6, 5, 8) = 8 。给你一个长度为 偶数 n 的数组 nums ,请你将 nums 中的元素分成 n / 2 个数对,使得:nums 中每个元素 恰好 在 一个 数对中,且最大数对和 的值 最小 。请你在最优数对划分的方案下,返回最小的 最大数对和 。示例 1原创 2021-12-03 15:47:09 · 91 阅读 · 0 评论 -
javaScript 48. 旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]来源:力扣(LeetCode) /** * @param {number[][]} matrix * @return {void} Do not ret原创 2021-12-01 15:21:59 · 412 阅读 · 0 评论 -
javaScript--1389. 按既定顺序创建目标数组
给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组:目标数组 target 最初为空。按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组中的下标 index[i] 处插入值 nums[i] 。重复上一步,直到在 nums 和 index 中都没有要读取的元素。请你返回目标数组。题目保证数字插入位置总是存在。示例 1:输入:nums = [0,1,2,3,4], index = [0,1,2,2,1]输出:[0,4,1,3,2]解释原创 2021-12-03 15:27:43 · 80 阅读 · 0 评论 -
javaScript 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。
给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。来源:力扣(LeetCode)/** * @param {number[]} nums * @return {number} */var maximumGap = function(nums) { if(nums.lengt原创 2021-11-30 13:44:37 · 1794 阅读 · 0 评论 -
javaScript--1827. 最少操作使数组递增
给你一个整数数组 nums (下标从 0 开始)。每一次操作中,你可以选择数组中一个元素,并将它增加 1 。比方说,如果 nums = [1,2,3] ,你可以选择增加 nums[1] 得到 nums = [1,3,3] 。请你返回使 nums 严格递增 的 最少 操作次数。我们称数组 nums 是 严格递增的 ,当它满足对于所有的 0 <= i < nums.length - 1 都有 nums[i] < nums[i+1] 。一个长度为 1 的数组是严格递增的一种特殊情况。示例原创 2021-12-03 16:00:17 · 606 阅读 · 0 评论 -
js 函数柯里化和闭包的使用
函数的柯里化f(x)(y)就是柯里化:使用函数f,输入x,计算,获得一个新的函数,再次输入y,计算,获取结果。f(x)(y)(z)(a)(b)(c),你完全可以写这样的函数。每次进行一次计算时,都返回一个新的函数。当然,你也可以写成这样的方式g(x, y, z, a, b, c)。var add = function (num) { return function (y)...原创 2021-04-26 19:25:00 · 206 阅读 · 0 评论 -
js . 数组串联
给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans ,数组下标 从 0 开始计数 ,对于所有 0 <= i < n 的 i ,满足下述所有要求:ans[i] == nums[i]ans[i + n] == nums[i]具体而言,ans 由两个 nums 数组 串联 形成。返回数组 ans 。示例 1:输入:nums = [1,2,1]输出:[1,2,1,1,2,1]解释:数组 ans 按下述方式形成:ans = [nums[0],num原创 2021-11-25 10:29:02 · 187 阅读 · 0 评论 -
js遍历所有子树
<script> let tree = [{ id: '1', title: '节点1', children: [{ id: '1-1', title: '节点1-1' }, { id: '1-2',原创 2021-09-08 08:48:00 · 168 阅读 · 0 评论 -
js 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231, 231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。var reverse = function(x) { var t = x.toString().split("").reverse().join("") ...原创 2021-08-09 23:38:00 · 959 阅读 · 0 评论 -
js 解码异或后的数组
未知 整数数组 arr 由 n 个非负整数组成。经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。给你编码后的数组 encoded 和原数组 arr 的第一个元素 first(arr[0])。请解码返回原数组 arr 。可以证明答案存在并且是唯一的。示例 1:输入:encoded = [1,2,3], first原创 2021-11-25 10:30:19 · 133 阅读 · 0 评论 -
无聊做的一些js题
<!-- * @Description: * @Version: 1.0 * @author: shihaixia * @Date: 2021-08-19 11:24:30--><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">原创 2021-09-08 09:09:53 · 80 阅读 · 0 评论 -
js 拥有最多糖果
给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例 1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true]解释:孩子 1 有 2 个糖果,如果他得到所有原创 2021-11-25 10:27:52 · 61 阅读 · 0 评论 -
js 所有奇数长度子数组的和
给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 11[2,5,3] = 10[1,4,2,5,3] = 15我们将所有值求和得到 1 + 4 + 2 + 5 +原创 2021-11-25 10:25:33 · 502 阅读 · 0 评论 -
js 两个数对之间的最大乘积差
两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) = 16 。给你一个整数数组 nums ,选出四个 不同的 下标 w、x、y 和 z ,使数对 (nums[w], nums[x]) 和 (nums[y], nums[z]) 之间的 乘积差 取到 最大值 。返回以这种方式取得的乘积差中的 最大值 。示例 1:输入:nums = [5,6,2,7,4]输出原创 2021-11-25 11:24:37 · 100 阅读 · 0 评论 -
js 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]来源:力扣(LeetCode)/** * @param {number[][]} matrix * @return {void} Do not return anything, modify matrix in-place instead.原创 2022-01-11 14:13:36 · 392 阅读 · 0 评论 -
1464. 数组中两元素的最大乘积 --- js
给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。请你计算并返回该式的最大值。示例 1:输入:nums = [3,4,5,2]输出:12解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)(nums[2]-1) = (4-1)(5-1) = 3*4 = 12 。来源:力扣(LeetCode)/** * @param {number[]} nums * @retu原创 2021-11-26 14:40:40 · 80 阅读 · 0 评论