Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2ae50a5

Browse files
authored
Add files via upload
1 parent 7cccf8a commit 2ae50a5

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# 1629、按键时间持续最长的键
2+
3+
LeetCode 设计了一款新式键盘,正在测试其可用性。测试人员将会点击一系列键(总计 n 个),每次一个。
4+
5+
给你一个长度为 n 的字符串 keysPressed ,其中 keysPressed[i] 表示测试序列中第 i 个被按下的键。releaseTimes 是一个升序排列的列表,其中 releaseTimes[i] 表示松开第 i 个键的时间。字符串和数组的 **下标都从 0 开始** 。第 0 个键在时间为 0 时被按下,接下来每个键都 恰好 在前一个键松开时被按下。
6+
7+
测试人员想要找出按键 **持续时间最长** 的键。第 i 次按键的持续时间为 releaseTimes[i] - releaseTimes[i - 1] ,第 0 次按键的持续时间为 releaseTimes[0]
8+
9+
注意,测试期间,同一个键可以在不同时刻被多次按下,而每次的持续时间都可能不同。
10+
11+
请返回按键 **持续时间最长** 的键,如果有多个这样的键,则返回 **按字母顺序排列最大** 的那个键。
12+
13+
14+
15+
示例 1:
16+
17+
```
18+
输入:releaseTimes = [9,29,49,50], keysPressed = "cbcd"
19+
输出:"c"
20+
解释:按键顺序和持续时间如下:
21+
按下 'c' ,持续时间 9(时间 0 按下,时间 9 松开)
22+
按下 'b' ,持续时间 29 - 9 = 20(松开上一个键的时间 9 按下,时间 29 松开)
23+
按下 'c' ,持续时间 49 - 29 = 20(松开上一个键的时间 29 按下,时间 49 松开)
24+
按下 'd' ,持续时间 50 - 49 = 1(松开上一个键的时间 49 按下,时间 50 松开)
25+
按键持续时间最长的键是 'b' 和 'c'(第二次按下时),持续时间都是 20
26+
'c' 按字母顺序排列比 'b' 大,所以答案是 'c'
27+
```
28+
29+
30+
示例 2:
31+
32+
```
33+
输入:releaseTimes = [12,23,36,46,62], keysPressed = "spuda"
34+
输出:"a"
35+
解释:按键顺序和持续时间如下:
36+
按下 's' ,持续时间 12
37+
按下 'p' ,持续时间 23 - 12 = 11
38+
按下 'u' ,持续时间 36 - 23 = 13
39+
按下 'd' ,持续时间 46 - 36 = 10
40+
按下 'a' ,持续时间 62 - 46 = 16
41+
按键持续时间最长的键是 'a' ,持续时间 16
42+
```
43+
44+
45+
提示:
46+
47+
releaseTimes.length == n
48+
keysPressed.length == n
49+
2 <= n <= 1000
50+
1 <= releaseTimes[i] <= 109
51+
releaseTimes[i] < releaseTimes[i+1]
52+
keysPressed 仅由小写英文字母组成
53+
54+
来源:力扣(LeetCode)
55+
链接:https://leetcode-cn.com/problems/slowest-key
56+
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
57+
58+
c语言代码
59+
60+
```c
61+
char slowestKey(int* releaseTimes, int releaseTimesSize, char * keysPressed){
62+
char ret = keysPressed[0];
63+
int maxTime = releaseTimes[0];
64+
for(int i = 1;i<releaseTimesSize;i++){
65+
int time = releaseTimes[i]-releaseTimes[i-1];
66+
if((time)>maxTime||(time==maxTime&&keysPressed[i]>ret)){
67+
maxTime = releaseTimes[i]-releaseTimes[i-1];
68+
ret = keysPressed[i];
69+
}
70+
}
71+
return ret;
72+
}
73+
```
74+
75+
java实现
76+
77+
```java
78+
class Solution {
79+
public char slowestKey(int[] releaseTimes, String keysPressed) {
80+
int maxTime = releaseTimes[0];
81+
char []keysPressed2 = keysPressed.toCharArray();
82+
char k = keysPressed2[0];
83+
for(int i = 1;i<releaseTimes.length;i++){
84+
if((releaseTimes[i]-releaseTimes[i-1])>maxTime||((releaseTimes[i]-releaseTimes[i-1])==maxTime)&&keysPressed2[i]>k){
85+
k = keysPressed2[i];
86+
maxTime = releaseTimes[i]-releaseTimes[i-1];
87+
}
88+
}
89+
return k;
90+
91+
}
92+
}
93+
```
94+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /