我已经用谷歌搜索并询问了人们这个问题,但无法理解其含义。我知道我的解决方案不正确,但我希望它可以帮助(它在 JS 上):
let C = [1, 3, 1, 4, 2, 3, 5, 4],
Y = 4;
function solution(X, A) {
var leaves = [];
var i = 0;
var result = -1;
for (i = 0; i < A.length; i++) {
if (typeof leaves[A[i]] == 'undefined') {
leaves[A[i]] = i;
}
}
if (leaves.length <= X) {
return -1;
}
for (i = 1; i <= X; i++) {
if (typeof leaves[i] == 'undefined') {
return -1;
} else {
result = Math.max(result, leaves[i]);
}
}
return result;
}
console.log(solution(Y, C));Run Code Online (Sandbox Code Playgroud)
我不需要任务的解决方案,我只需要它更清晰的解释,即我必须做什么来解决它。
小智 8
使用 Set() 的简单 100% 解决方案。由于 Set 只能包含唯一值,因此您可以简单地遍历数组 A,将这些值添加到 Set 中,直到 Set 的大小等于整数 X,此时数组键就是解决方案。
function solution(X, A) {
let holdValues = new Set();
for(i=0;i<A.length;i++) {
holdValues.add(A[i]);
if(holdValues.size == X)return i;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1556 次 |
| 最近记录: |