저는 Java를 처음 사용하면서도 재귀를 둘러싼 내 머리를 감싸고 있습니다. 아래 함수는 두 개의 정렬 된 목록 x와 y 목록의 첫 번째 교차점에서 true를 반환합니다. 하나 개의 요소에서 제외하여 목록을 줄이기 위해 노력 메서드의 재귀 구현
public static boolean checkIntersection(List<Integer> x, List<Integer> y) {
int i = 0;
int j = 0;
while (i < x.size() && j < y.size()) {
if (x.get(i).equals(y.get(j))) {
return true;
} else if (x.get(i) < y.get(j)) {
i++;
} else {
j++;
}
}
return false;
}
지금 내가 대신 재귀를 사용하여 구현하기 위해 노력하고 있었고, 나는 그 때이 경우 빈 목록은 기본 경우가있을 것을 알고 시간을 계산하고 같은 재귀 함수로 다시 피드,하지만 내가 목록의 나머지 부분을 반복적으로 통과로 교차로를 확인하는 방법을 해결할 수 없습니다.
public static boolean recursiveChecking(List<Integer> x,List<Integer> y) {
if(x.size() == 0){
return false;
}
else {
return recursiveChecking(x.subList(1, x.size()-1), y);
}
}
어떤 도움을 주시면 감사하겠습니다. 고맙습니다.
두 개의 정수 목록이 정렬되어 있습니까? 그렇지 않으면 함수의 첫 번째 버전이 작동하지 않습니다. – Leon
네, 두 목록이 이미 정렬되어서 죄송합니다. –