귀속 방법을 이용하여 하나의 수조의 최대치를 구하다
1446 단어 필기시험
package programmer;
import java.util.Scanner;
/*
*
*/
public class MaxRecursion {
public int maxRecursion(int[] A, int low, int high) {
if (low > high)
return -1;
else {
if (A[low] < maxRecursion(A, low + 1, high))
return maxRecursion(A, low + 1, high);
else
return A[low];
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] A = new int[N];
for (int i = 0; i < A.length; i++)
A[i] = sc.nextInt();
System.out.println(new MaxRecursion().maxRecursion(A, 0, A.length - 1));
}
}
2. 두 갈래로 배열의 최대 값을 찾습니다.
package programmer;
import java.util.Scanner;
/*
*
*/
public class MaxBinarySearch {
public int maxBinarySearch(int[] A, int low, int high) {
if (low > high)
return -1;
else {
int mid = (low + high) / 2;
int tmp = maxBinarySearch(A, low, mid - 1) > maxBinarySearch(A,
mid + 1, high) ? maxBinarySearch(A, low, mid - 1)
: maxBinarySearch(A, mid + 1, high);
return tmp > A[mid] ? tmp : A[mid];
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] A = new int[N];
for (int i = 0; i < A.length; i++)
A[i] = sc.nextInt();
System.out.println(new MaxBinarySearch().maxBinarySearch(A, 0,
A.length - 1));
}
}
그러나 복잡도는 줄어들지 않고 새로운 사고방식을 제공할 뿐이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
두 갈래 나무 중 두 노드의 가장 가까운 공공 조상을 찾다제목: 두 갈래 나무 중 두 노드의 가장 가까운 공공 조상을 찾아 되돌려 달라고 한다. 알고리즘 사상: 이 문제의 관건은 모든 노드에 부모 노드를 가리키는 바늘을 포함하는 데 있다. 이로써 프로그램은 간단한 알고리즘...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.