정렬 된 배열 에서 두 개의 수의 합 이 m 인 모든 하위 조합 을 찾 아 라.
1033 단어 알고리즘
int a[] = {1,2,3,4,5,6};m 는 6, 여기 1 + 5 = 6, 2 + 4 = 6 이 므 로 아래 표 시 된 0, 4 와 1, 3 을 되 돌려 야 합 니 다.
문제 풀이 방향 은 순 서 를 잘 배열 한 배열 이기 때문에 2 분 에 찾 는 사상 을 이용 하여 배열 의 머리 와 꼬리 표 지 를 설정 할 수 있 습 니 다. 매번 에 숫자 를 취하 고 m 와 같 는 지 판단 할 수 있 습 니 다. 만약 에 한 조 의 조합 을 찾 아 아래 표 지 를 출력 한 다음 에 머리 표 지 를 뒤로 이동 하고 꼬리 표 지 를 앞으로 이동 하 는 것 과 같 으 면 두 가지 상황 이 있 습 니 다.
1. 두 수의 합 이 m 보다 크 고 배열 이 정렬 되 어 있 기 때문에 꼬리 표 시 는 앞으로 이동 합 니 다.
2. 두 수의 합 은 m 이하 이 고, 머리 표 시 는 뒤로 이동
머리 끝 에 만 남 을 표시 하 는 것 은 모든 조합 을 찾 았 고 순환 이 끝났다 는 것 을 의미한다.
코드 는 다음 과 같 습 니 다:
public static void findNum(int a[],int m){
int start=0,end=a.length-1;
// m ,
while(a[start]>m){
System.out.println("error");
}
while(end>start){
if(a[start]+a[end]==m){
System.out.println(" :"+start+","+end+" "+a[start]+"+"+a[end]+"="+m);
start++;
end--;
}else if(a[start]+a[end]m){
end--;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
물체 검출의 평가 지표 IoU의 계산 방법Yolo나 SSD 등 물체 검출에서 평가 지표로 사용되는 IoU에 대해 조사했으므로 정리했습니다. IoU (Intersection over Union)는 두 영역이 얼마나 겹치는지를 나타내는 지표입니다. 두 영역의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.