LCP 77-符文储备

Raphael Liu Lv10

远征队在出发前需要携带一些「符文」,作为后续的冒险储备。runes[i] 表示第 i 枚符文的魔力值。
他们将从中选取若干符文进行携带,并对这些符文进行重新排列,以确保任意相邻的两块符文之间的魔力值相差不超过 1。 请返回他们能够携带的符文
最大数量示例 1: >输入:runes = [1,3,5,4,1,7] > >输出:3 >

解释:最佳的选择方案为[3,5,4] >将其排列为 [3,4,5] 后,任意相邻的两块符文魔力值均不超过 1,携带数量为 3
其他满足条件的方案为 [1,1] 和 [7],数量均小于 3。 >因此返回可携带的最大数量 3示例 2: >输入:runes = [1,1,3,3,2,4] > >输出:6 > >解释:排列为 [1,1,2,3,3,4],可携带所有的符文 提示: - 1 <= runes.length <= 10^4 - 0 <= runes[i] <= 10^4

有点啰嗦,凑合着看

[]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

class Solution {
public int runeReserve(int[] runes) {
Arrays.sort(runes);
int count = 1;
// 临时存储count
int temp = 1;
int i = 0, j = i + 1;
while (i < runes.length && j < runes.length) {
if (runes[j] - runes[i] > 1) {
i++;
j++;
count = Math.max(count, temp);
temp = 1;
continue;
}
temp++;
i++;
j++;
}
return Math.max(count, temp);
}
}
 Comments
On this page
LCP 77-符文储备