給定來自CodingBat的任務
uj5u.com熱心網友回復:
流過陣列的索引,檢查當前元素是否等于零,如果不將其映射到自身,如果是,則使用Arrays.stream(array, from, to)
過濾器賠率從當前位置開始再次流過陣列的其余部分,找到可選的最大值,如果存在可選回傳那個 orElse 回傳當前元素
public int[] zeroMax(int[] nums){
boolean containsZero = java.util.stream.IntStream.of(nums).anyMatch(x -> x == 0);
if (!containsZero) {
return nums;
}
return java.util.stream.IntStream.range(0, nums.length).map(
i -> nums[i] != 0 ? nums[i] : Arrays.stream(nums, i, nums.length)
.filter(j -> j % 2 == 1)
.max()
.orElse(nums[i]))
.toArray();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/489417.html