對於此類,我必須在1000x250二維數組中找到所有唯一值。如何優化此外觀以獲得唯一編號算法功能
數據介於2000000到2200000之間。所有數據存儲在稱爲數據的2D int數組中。
我遇到的問題是需要一些時間來運行這個,我的教授說我們不能使用其他數據集,並且我們還需要優化我們的代碼,以便以良好的速度運行。
int[] uniqueValues = new int[200000];
boolean isUnique = true;
int uniqueCounter = 0;
for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[i].length; j++) {
for (int x = 0; x < uniqueCounter; x++) {
if (data[i][j] != uniqueValues[x]) {
isUnique = true;
} else {
isUnique = false;
break;
}
}
if (isUnique) {
uniqueValues[uniqueCounter] = data[i][j];
uniqueCounter++;
}
}
}
這個問題應該去的代碼審查:http://codereview.stackexchange.com/ – Sweeper
*「我的教授說我們不能使用其他數據集」* - 這沒有意義。可能你錯誤地翻譯了它。他*實際上*說了什麼? –
你應該使用一個Set。如果您不允許使用預定義的Set實現,那麼您應該創建自己的Set數據結構。 –