문제
내가 작성한 정답
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = new int[queries.length];
for(int i=0; i<queries.length; i++){
int s = queries[i][0], e = queries[i][1], k = queries[i][2];
int min = 1000000;
for(int j= s; j<=e; j++){
if(arr[j]>k && arr[j]<min) min = arr[j];
}
answer[i] = (min==1000000)?-1:min;
}
return answer;
}
}다른 사람들의 정답
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = {};
return IntStream.range(0, queries.length)
.map(q -> IntStream.rangeClosed(queries[q][0], queries[q][1])
.map(i -> arr[i])
.filter(i -> i > queries[q][2])
.min().orElse(-1)
).toArray();
}
}Share article