2016-05-15 81 views
-2

例如,我有此數組:如何在java中的數字(int)數組中輸出序列?

int[] a = {1,1,1,1,5,5,1,1,1}; 
//output: 4 2 3 

換言之,它將打印相同數量的序列。 我已經嘗試過這樣的:

int doubles_count_while (int a[][], int n, int cestatic) { 
    int result = 1; 
    while (result < n && a[result - 1][cestatic] == a[result][cestatic]) { 
     result++; 
    } 
    return result; 
} 

int doubles_groups(int a[][], int n, int cestatic, int b[]) { 
    int result = 0; 
    int i = 0; 
    while (i < n) { 
     int z = doubles_count_while(a, n-i, a[i][cestatic]); 
     b[result++] = z; i += z; 
    } 
    return result; 
} 
+0

請正確格式化您的代碼。你的代碼不能產生正確的結果? – luk2302

+0

你在Java 8上嗎? – Kayaman

+0

如果你的輸入應該是一個'int []',爲什麼你的方法需要一個'int [] []'?我的意思是,如果你的方法甚至不接受你應該處理的數據類型,除非它有用,否則你怎麼可能? – Andreas

回答

2

在發佈代碼,請張貼它作爲MCVE這樣我們就可以實際運行它。你也應該告訴我們你期望這段代碼做什麼它做什麼而不是。嘗試將其縮小到一行代碼,而這些代碼並沒有達到您期望的效果。

這是一個相當廣泛的問題,但我會盡力在一般意義上提供幫助。你需要退後一步,忘記代碼。寫下你的步驟會跟着,沒有電腦,如果有人遞給你一堆索引卡片上寫着數字,並要求你將它們分組。你會如何做到這一點?

假裝你有一個非常愚蠢的朋友誰不知道如何分組卡。你應該能夠把你的指示交給那個朋友,並讓他們跟隨他們在沒有任何幫助的情況下對這些卡片進行分組。記住這個朋友多麼愚蠢,所以要確保你的指示儘可能小。

當你寫出這些指令時,這是一個算法,你可以開始考慮用代碼實現。試圖深入瞭解代碼而不清楚自己想要做什麼只會給你帶來很多麻煩。祝你好運。

相關問題