Leetcode Java Maximum Distance in Arrays
업데이트:
문제
코드
class Solution {
public int maxDistance(List<List<Integer>> arrays) {
int result = 0;
List<Integer> list = arrays.get(0);
int min = list.getFirst();
int max = list.getLast();
for (int i = 1; i < arrays.size(); i++) {
list = arrays.get(i);
int first = list.getFirst();
int last = list.getLast();
result = Math.max(result, Math.max(Math.abs(last - min), Math.abs(first - max)));
min = Math.min(min, first);
max = Math.max(max, last);
}
return result;
}
}
결과
설명
-
각 값들이 오름차순으로 정렬된 arrays 내 배열들을 이용하여 두 개의 다른 배열에서 각각 한 값을 꺼내 $ a - b $인 거리가 가장 큰 최대 거리를 찾는 문제이다. - 문제 풀이에 필요한 변수를 정의한다.
- result는 최대 거리를 저장할 변수로, 0으로 초기화한다.
- min과 max는 arrays의 첫 List에서 첫 값과 마지막 값인 최솟값과 최댓값을 넣은 변수이다.
- 1부터 arrays의 길이 미만까지 i를 증가시키며 아래를 반복한다.
- first와 last에 arrays의 i번째 List에서 첫 값과 마지막 값인 최솟값과 최댓값을 넣어준다.
-
result에 result, $ last - min $, $ first - max $ 중 가장 큰 거리의 값을 넣어준다. - min에 min과 first 중 작은 값을, max에 max와 last 중 큰 값을 넣어준다.
- 반복이 완료되면 최대 거리가 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기