이 기사에서는 하위 배열의 합을 찾기위한 최대 값 알고리즘의 Java 구현에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
일반적으로 C 및 C ++는 알고리즘 구현에서 더 자주 사용됩니다. 아래에서는 Java 언어를 통해 알고리즘을 구현하여 더 친밀감을 느낍니다.
주제:
배열에 양수 및 음수로 성형 배열을 입력하십시오.
배열의 하나 이상의 연속 정수는 서브 어레이를 형성하고 각 서브 어레이는 합이 있습니다.
모든 서브 배달 합계의 최대 값을 찾으십시오.
예를 들어, 입력 배열은 1, -2, 3, 10, -4, 7, 2, -5이고 가장 큰 서브 어레이는 3, 10, -4, 7, 2입니다.
따라서 출력은 서브 어레이의 합 18입니다.
구현 코드 :
패키지 arrdemo; public class maxsub {public static void main (string [] args) {// todo 자동 생성 메소드 스터브 findmaxsubarysum1 (); } public static void findmaxsubarysum1 () {// sum은 subarray int sum = 0; // max는 서브 어레이 int max = 0의 최대 합입니다. // 최대 서브 어레이 어레이의 시작 위치 int startpos = 0; // 최대 서브 어레이의 종료 위치 int endpos = 0; int [] array = {-1, 2, -3, 12, -5, -1, 9, -2}; for (int i = 0; i <array.length; i ++) {sum+= array [i]; // sum if (sum <0) {// 현재 합계가 음수 인 경우 확인하고 시작 위치가 다음 위치 sum = 0에서 시작합니다. startpos = i + 1; } if (sum> max) {// 합이 이전 최대 값보다 큰 것으로 판명되면 합계를 최대에 할당하고 마지막 위치 max = sum을 기록하십시오. endpos = i + 1; }} system.out.println ( "wulin.com 테스트 결과 :"); System.out.println ( "max :" + max); System.out.println ( "startpos :" + startpos + ", endpos :" + (endpos -1)); }}실행 결과 :
Java 알고리즘에 대한 자세한 내용은이 사이트에 관심이있는 독자들이 주제를 볼 수 있습니다. "Java 데이터 구조 및 알고리즘 자습서", "Java Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.