데이터 구조 제목, 후속 옮 겨 다 니 기
주어진 배열, 배열 의 마지막 차 점 값, 구 덩이 는 뿌리 노드 의 값 으로 정 해 집 니 다. 배열 의 첫 번 째 노드 부터 뿌리 노드 보다 작은 값 은 반드시 왼쪽 서브 트 리 노드 이 고 뿌리 노드 보다 큰 값 은 반드시 오른쪽 서브 트 리 노드 입 니 다.이 어 왼쪽 트 리 의 상황 을 재 귀적 으로 판단 한다. 예 를 들 어 첫 번 째 테스트 사례.5, 7, 6, 9, 11, 10, 8 곶 근 노드 는 8 이다. 5, 7, 6 은 모두 왼쪽 나무 노드 이 고 9, 11, 10 은 모두 오른쪽 나무 노드 이다.이어서 귀속 판단 하 다
package Abc;
/**
*
* */
public class Bestfor {
public static void main(String[] args){
int[] array={9,6,9};
if(isAfterResult(array,0,array.length-1)){
System.out.println(" ");
}else{
System.out.println(" ");
}
}
// ,
private static boolean isAfterResult(int[] array,int start,int stop){
if(null == array){
throw new NullPointerException();
}
// start stop
if(start < 0 || start >array.length || stop <0 || stop >array.length || start >stop){
throw new ArrayIndexOutOfBoundsException();
}
// , 3
// 3, , 。
// 。 3 ,
int count= stop -start +1;
if(count < 3){
return true;
}else if(count == 3){
// 3 , ,
if(array[stop] >= array[start] && array[stop]<= array[start+1]){
return true;
}else{
return false;
}
}else{
//
int index=-1;
for(int i=start;i<stop;i++){
// i
if(array[i]>=array[stop]){
index=i;
break;
}
}
if(index == -1 || index ==0){
return isAfterResult(array,start,stop-1);
}else{
return isAfterResult(array,start,index-1) && isAfterResult(array,index,stop-1);
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.