js算法与数据结构
js算法与数据结构
-雪之下雪乃-
计算机专业的小萌新
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1838. 最高频元素的频数
右边界以左到左边界的差值怎么算呢,我觉得相当于算柱状缺失面积,补上了相当于一个矩形,即:(nums[right] - nums[right - 1]) * (right - left)- 对第一个元素执行 3 次递增操作,此时 nums = [4,4,8,13]。4 是数组中最高频元素,频数是 2。- 对第二个元素执行 4 次递增操作,此时 nums = [1,8,8,13]。对第一个元素执行 3 次递增操作,对第二个元素执 2 次递增操作,此时 nums = [4,4,4]。原创 2024-12-28 13:58:13 · 255 阅读 · 0 评论 -
2779. 数组的最大美丽值
给你一个下标从0开始的整数数组nums和一个非负整数k。在范围中选择一个此前没有选过的下标i。将nums[i]替换为范围内的任一整数。数组的美丽值定义为数组中由相等元素组成的最长子序列的长度。对数组nums执行上述操作任意次后,返回数组可能取得的最大美丽值。你只能对每个下标执行一次此操作。数组的子序列定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。原创 2024-12-26 11:03:05 · 298 阅读 · 0 评论 -
3090. 每个字符最多出现两次的最长子字符串
这道题是不定长滑动窗口的解法,有点理解什么叫不定长了,定长滑动窗口,你移动了右边一次,左边就得跟着移动一次,无论如何都要移动;而不定长窗口不是,右边移动,左边只有窗口条件不符合时才会移动一次或者多次;以这道题为例,窗口右边移动进来一个新值,只有窗口相同字母出现两次以上,左边才会动;,请找出满足每个字符最多出现两次的最长子字符串,并返回该。原创 2024-12-23 10:40:28 · 347 阅读 · 0 评论 -
3. 无重复字符的最长子串
ps: while (set.has(s[right]) )这个位置的判断是根据每次新加进来的右边的值,如果新加的值存在在整个窗口时,就不符合不重复子串,子串是连续的,所以并不是说你当前右边加入时窗口重复了,你左边窗口边界向右移动一次就能保证不重复了,而是一直缩减左边界,直到窗口内无重复值,即使你删除左边界中有不重复的值也要删,因为子串是连续的。我的理解是维护一个滑动窗口,你可以让滑动窗口的左边或者右边作为有序遍历,就是从左往右遍历数组,但是在这个过程你滑动窗口的长度是根据不重复这个条件动态调节长度的。原创 2024-12-22 21:51:27 · 260 阅读 · 0 评论 -
1423. 可获得的最大点数
几张卡牌排成一行,每张卡牌都有一个对应的点数。点数由整数数组cardPoints给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿k张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组cardPoints和整数k,请你返回可以获得的最大点数。示例 1:12第一次行动,不管拿哪张牌,你的点数总是 1。但是,先拿最右边的卡牌将会最大化你的可获得点数。最优策略是拿右边的三张牌,最终点数为 1 + 6 + 5 = 12。示例 2:4。原创 2024-12-21 14:34:44 · 267 阅读 · 0 评论 -
1652. 拆炸弹
你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为n的循环数组code以及一个密钥k。为了获得正确的密码,你需要替换掉每一个数字。所有数字会同时被替换。如果k > 0,将第i个数字用接下来k个数字之和替换。如果k < 0,将第i个数字用之前k个数字之和替换。如果k == 0,将第i个数字用0替换。由于code是循环的,code[n-1]下一个元素是code[0],且code[0]前一个元素是code[n-1]。给你循环数组code和整数密钥k,请你返回解密后的结果来拆除炸弹!原创 2024-12-21 00:17:10 · 306 阅读 · 0 评论 -
js算法之搜索与排序
ps:二分搜索的前提是数组是有序的。原创 2024-12-20 00:16:18 · 186 阅读 · 0 评论 -
两数之和(2024-9-9)
因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。原创 2024-09-09 00:35:57 · 204 阅读 · 0 评论 -
删除有序数组中的重复项(2024-9-12)
返回删除后数组的新长度。删除重复出现的元素,使每个元素。原创 2024-09-12 00:48:06 · 260 阅读 · 0 评论 -
寻找两个正序数组的中位数(2024-9-12)
合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。合并数组 = [1,2,3] ,中位数 2。请你找出并返回这两个正序数组的。的正序(从小到大)数组。算法的时间复杂度应该为。原创 2024-09-12 13:41:59 · 277 阅读 · 0 评论 -
盛最多水的容器(2024-9-13)
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。返回容器可以储存的最大水量。原创 2024-09-13 13:05:22 · 241 阅读 · 0 评论 -
三数之和(2024-9-14)
答案中不可以包含重复的三元组。,判断是否存在三元组。原创 2024-09-14 13:37:38 · 189 阅读 · 0 评论 -
最接近的三数之和
与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。与 target 最接近的和是 0(0 + 0 + 0 = 0)。中选出三个整数,使它们的和与。假定每组输入只存在恰好一个解。原创 2024-09-18 13:34:04 · 146 阅读 · 0 评论 -
四数之和(2024-9-19)
请你找出并返回满足下述全部条件且。原创 2024-09-19 22:13:27 · 185 阅读 · 0 评论
分享