2022.06.27
好久不见
难度简单52收藏分享切换为英文接收动态反馈
LeetCode 设计了一款新式键盘,正在测试其可用性。测试人员将会点击一系列键(总计 n
个),每次一个。
给你一个长度为 n
的字符串 keysPressed
,其中 keysPressed[i]
表示测试序列中第 i
个被按下的键。releaseTimes
是一个升序排列的列表,其中 releaseTimes[i]
表示松开第 i
个键的时间。字符串和数组的 下标都从 0 开始 。第 0
个键在时间为 0
时被按下,接下来每个键都 恰好 在前一个键松开时被按下。
测试人员想要找出按键 持续时间最长 的键。第 i
次按键的持续时间为 releaseTimes[i] - releaseTimes[i - 1]
,第 0
次按键的持续时间为 releaseTimes[0]
。
注意,测试期间,同一个键可以在不同时刻被多次按下,而每次的持续时间都可能不同。
请返回按键 持续时间最长 的键,如果有多个这样的键,则返回 按字母顺序排列最大 的那个键。
示例 1:
1 | 输入:releaseTimes = [9,29,49,50], keysPressed = "cbcd" |
示例 2:
1 | 输入:releaseTimes = [12,23,36,46,62], keysPressed = "spuda" |
提示:
releaseTimes.length == n
keysPressed.length == n
2 <= n <= 1000
1 <= releaseTimes[i] <= 109
releaseTimes[i] < releaseTimes[i+1]
keysPressed
仅由小写英文字母组成1 | class Solution { |
难度简单174
Alice 有 n
枚糖,其中第 i
枚糖的类型为 candyType[i]
。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。
医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2
即可(n
是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。
给你一个长度为 n
的整数数组 candyType
,返回: Alice 在仅吃掉 n / 2
枚糖的情况下,可以吃到糖的最多种类数。
示例 1:
1 | 输入:candyType = [1,1,2,2,3,3] |
示例 2:
1 | 输入:candyType = [1,1,2,3] |
示例 3:
1 | 输入:candyType = [6,6,6,6] |
提示:
n == candyType.length
2 <= n <= 104
n
是一个偶数-105 <= candyType[i] <= 105
通过次数70,881
提交次数99,319
1 | class Solution { |
难度中等279
在 LeetCode 商店中, 有 n
件在售的物品。每件物品都有对应的价格。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。
给你一个整数数组 price
表示物品价格,其中 price[i]
是第 i
件物品的价格。另有一个整数数组 needs
表示购物清单,其中 needs[i]
是需要购买第 i
件物品的数量。
还有一个数组 special
表示大礼包,special[i]
的长度为 n + 1
,其中 special[i][j]
表示第 i
个大礼包中内含第 j
件物品的数量,且 special[i][n]
(也就是数组中的最后一个整数)为第 i
个大礼包的价格。
返回 确切 满足购物清单所需花费的最低价格,你可以充分利用大礼包的优惠活动。你不能购买超出购物清单指定数量的物品,即使那样会降低整体价格。任意大礼包可无限次购买。
示例 1:
1 | 输入:price = [2,5], special = [[3,0,5],[1,2,10]], needs = [3,2] |
示例 2:
1 | 输入:price = [2,3,4], special = [[1,1,0,4],[2,2,1,9]], needs = [1,2,1] |
提示:
n == price.length
n == needs.length
1 <= n <= 6
0 <= price[i] <= 10
0 <= needs[i] <= 10
1 <= special.length <= 100
special[i].length == n + 1
0 <= special[i][j] <= 50
通过次数23,014
提交次数36,104
1 | class Solution { |
1 | class Solution { |
难度中等443
给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋
次的元素。
示例 1:
1 | 输入:[3,2,3] |
示例 2:
1 | 输入:nums = [1] |
示例 3:
1 | 输入:[1,1,1,3,3,2,2,2] |
提示:
1 <= nums.length <= 5 * 10^4
-10^9 <= nums[i] <= 10^9
进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。
求数量大于 n/3下取整的数组元素,由题意可知,结果最多有两个数字。
使用两个变量维护元素,两个变量维护计数器。
如果第一个计数器大于0遍历到的元素和第一个元素相同,那么第一个计数器自增
如果第二个计数器大于0遍历到的元素和第二个元素相同,那么第二个计数器自增
如果第一个计数器等于0,那么设置当前的数字为element1
如果第二个计数器等于0,那么设置当前的数字为element2
如果遍历到的元素和第一个第二个都不相同,那么两个计数器都自减
1 | class Solution { |
难度简单385
给你一个长度为 n
的整数数组,每次操作将会使 n - 1
个元素增加 1
。返回让数组所有元素相等的最小操作次数。
示例 1:
1 | 输入:nums = [1,2,3] |
示例 2:
1 | 输入:nums = [1,1,1] |
提示:
n == nums.length
1 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10^9
题目中每次将n-1
个元素增加1
,相当于将数组中的一个数字减去1
,这样思考的话我们只需要将数组中所有的元素减到数组中原来的最小值就可以完成题目的要求
1 | class Solution { |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true