2013-02-14 66 views
-2
public class rough{ 
public static int arrMajority1(int A[]){ 
    int n = A.length; 
    int c = 1; 
    for(int i=0;i>A.length;i++){ 

    for(int j=i+1;j<A.length;j++) 
    if (A[i]==A[j]) 
     c=c+1; 
     if (c>(A.length/2)){ 
     return A[i]; 
     } 
    } 
    return -1; 
    } 
    public static void main(String[] args){ 
    int A[] = new int [] {5,5,8,7,5}; 
    // int arrMajority1 = A[0]; 
    System.out.println(" " + arrMajority1(A)); 
    } 
} 

大小爲N的數組A中的多數元素是出現超過N/2次的元素。例如(3,3,4,2,4,4,2,4,4)具有多數元素(4),而陣列(3,3,4,2,4,4,2,4)具有沒有多數元素。陣列中的多數元素

+6

而你的問題是什麼? – 2013-02-14 20:00:02

回答

1

如果問題是問這個代碼有什麼問題,我認爲主要問題是外部for循環中的條件。我認爲應該是:

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

(注意<而非>)。

另一個問題是,你可能需要外for循環的每次迭代前將c計數器復位(否則,也不會保持當前元素的計數被檢查)。因此,請嘗試將int c = 1;語句移至內部for循環上方的空行。

+0

感謝您的幫助 – Pioneer 2013-02-18 21:40:46