2014-10-20 2 views
-3

, 나는이 문제를 만났다 (11)배열 오류 자바

at watercount.trap(watercount.java:41) 
at watercount.main(watercount.java:14) 

이 배열을 사용하지 않는 것 같다 정확하게, 그러나 나는 알아낼 수 없다. 당신의 도움을 주셔서 감사합니다 ! i을 반복 할

import java.util.Arrays; 


public class watercount { 

    public static void main (String args[]){ 

    int[] Array = new int[] {1,3,4,6,8,12,2,3,4,5,10}; 


    int water_num; 

    water_num = trap(Array); 

    System.out.println(Arrays.toString(Array)); 


    } 



    public static int trap (int[] A) 

    { int trap=0; 
     int high=0; 

     if (A==null) return trap; 

     int []leftHigh = new int[A.length]; 
     int []rightHigh = new int[A.length]; 

     for(int i=0; i<A.length; i++){ 
      if(A[i]>high) high = A[i]; 
      leftHigh[i]=high; 
     } 

     high=0; 

     for(int i=A.length;i>=0;i--){ 
      if(A[i]>high) high = A[i]; 
      rightHigh[i]=high; 
     } 

     for(int i=0; i<A.length; i++) 

     {trap+=Math.min(rightHigh[i],leftHigh[i])-A[i];} 

    return trap; 



    } 
+2

수백 그대로 있습니다을하는 솔루션을 제공 한 것입니다 스택 오버플로 이전에 대답 질문을하지 않을 경우 수천. Stack Overflow와 Google * prior *를 모두 검색하여 실사를 해보십시오. 특히이 문제와 관련하여 자주 발생하는 문제에 대해 질문하십시오. – MarsAtomic

답변

2

두 번째 for 루프는 뒤로 잘못된 인덱스에서 시작 - A.length. 그것은 "하나씩 떨어져있는"오류입니다. 대신 가능한 최대 인덱스 A.length - 1에서 시작

for(int i=A.length - 1; i>=0; i--){ 
+0

고마워요 :) – swing