List.removeIf 错误 - 数组中的第 K 个最大元素
Error with List.removeIf - Kth Largest Element in an Array
我正在尝试查找数组中第 K 个最大的元素。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Solution {
public int findKthLargest(int[] nums, int k) {
//List<Integer> list = Arrays.asList(nums);
List<Integer> list = IntStream.of(nums).boxed().collect(Collectors.toList());
int max = nums[0];
for(int x = 1; x<=k; x++){
for(int y = 1; y<list.size(); y++){
int temp;
if (nums[y] > max) {
max = nums[y];
temp = max;
}
}
list.removeIf(value -> value.equals(temp.valueOf()));
}
return max;
}
}
我遇到了错误:
第 20 行:错误:找不到符号
list.removeIf(值 -> value.equals(temp.valueOf()));
^
符号:可变温度
位置:class解决方案
如果我在两个 for 循环语句之间移动 int temp,就会出现此错误。
第 21 行:错误:无法取消引用 int
list.removeIf(值 -> value.equals(temp.valueOf()));
^
如果任务只是找到第K大元素,则不应从list/array中删除任何内容.
只需对数组进行排序,return从末尾数起的第 k 个值:
public static int findKthLargest(int[] nums, int k) {
assert(k > 0 && k < nums.length); // make sure k is valid
Arrays.sort(nums);
return nums[nums.length - k];
}
我正在尝试查找数组中第 K 个最大的元素。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Solution {
public int findKthLargest(int[] nums, int k) {
//List<Integer> list = Arrays.asList(nums);
List<Integer> list = IntStream.of(nums).boxed().collect(Collectors.toList());
int max = nums[0];
for(int x = 1; x<=k; x++){
for(int y = 1; y<list.size(); y++){
int temp;
if (nums[y] > max) {
max = nums[y];
temp = max;
}
}
list.removeIf(value -> value.equals(temp.valueOf()));
}
return max;
}
}
我遇到了错误:
第 20 行:错误:找不到符号 list.removeIf(值 -> value.equals(temp.valueOf())); ^ 符号:可变温度 位置:class解决方案
如果我在两个 for 循环语句之间移动 int temp,就会出现此错误。
第 21 行:错误:无法取消引用 int list.removeIf(值 -> value.equals(temp.valueOf())); ^
如果任务只是找到第K大元素,则不应从list/array中删除任何内容.
只需对数组进行排序,return从末尾数起的第 k 个值:
public static int findKthLargest(int[] nums, int k) {
assert(k > 0 && k < nums.length); // make sure k is valid
Arrays.sort(nums);
return nums[nums.length - k];
}