我很新到Java,但我已經掌握了一些基本...移動和合並數組中的元素?
所以我有4個整數組成的數組,我需要移動到陣列的前端,或合併他們,如果他們是平等的所以:
- {0,1,0,2}變成{1,2,0,0}
- {2,1,0,2}變成{2,1,2,0 }
- {1,1,0,0}變成{2,0,0,0}
- {0,2,0,2}變成{4,0,0,0}
- {1,1,3,3} tur NS爲{2,6,0,0}
- {2,2,2,2}變成{4,4,0,0}等等...
這裏是我到目前爲止:
public void combine(int[] row)
{
for (int i = 0; i < row.length-1; i++)
{
if (row[i] == 0 && row[i+1] > 0) //move
{
row[i] = row[i+1];
row[i+1] = 0;
}
if (row [i] == row[i+1] && row[i] > 0) //merge
{
row[i] = 2 * row[i];
row[i+1] = 0;
}
}
System.out.println(row[0]);
System.out.println(row[1]);
System.out.println(row[2]);
System.out.println(row[3]);
}
的問題是:
- {0,1,0,2}爲{1,0,2,0}
- {0,2,0,2}變爲{2,0,2,0}
- {1,1,3,3}變成{2,3,3,0}
- {2,2,2,2} {變得} 4,2,2,0
它不完全合併,或者它只是移動和合並一次出於某種原因?我想知道我做錯了什麼,所以我可以學習,謝謝!
請問有人能幫助我嗎?我真的很感激......謝謝!
我看到你的問題有兩個步驟。首先,您需要對數組進行排序以將所有零向右推。這種有氣泡排序的味道。接下來,您需要執行組合步驟,您可以選擇組合兩個條目。 –