-2
我有這樣一個數組:A = [X, 0, X, Y, Y, 0, 0, Y, Z, 0, 0, 0, Z, 0, T, 0, T, 0]
。我想寫一個算法,從陣列A
中刪除Y
,並通過移動Z
和T
(將Z
和T
的位置替換爲0
)來替換它們的位置。所以,我會得到如何在某些特定位置將數組的子集移到左側?
- 原始數組是
A = [X, 0, X, Y, Y, 0, 0, Y, Z, 0, 0, 0, Z, 0, T, 0, T, 0]
。 - 結果是
A = [X, 0, X, Z, Z, 0, 0, T, T, 0, 0, 0, 0, 0, 0, 0, 0, 0]
。
我試過如下:
- 找到指數
I={i: A[i] = Y}
。 - 找到索引
J={j: A[j] != 0 & j > max(I)}
。 - if
size(I)>=size(J)
then leti
loop throughI
andj
loop throughJ
。 - 設置
A[i]=A[j]
並增加i
和j
。
我的問題是與案件size(I)<size(J)
?
下面是另一個例子:
- 原始陣列是
A = [X, Y, Y, Y, Z, 0, T]
。 - 結果是
A = [X, Z, T, 0, 0, 0, 0]
。
又如:
- 原始陣列是
A = [X, Y, 0, Y, Z, T]
。 - 結果是
A = [X, Z, 0, T, 0, 0]
。
因爲我將兩個'Z'都移到了左邊。 – Ribz
StackOverflow希望您[嘗試首先解決您自己的問題](http://meta.stackoverflow.com/questions/261592),並且我們也[不回答作業問題](https://softwareengineering.meta。 stackexchange.com/questions/6166)。請更新您的問題,以顯示您已經在[最小,完整和可驗證的示例]中嘗試過的內容(http://stackoverflow.com/help/mcve)。有關更多信息,請參閱[如何提出良好問題](http://stackoverflow.com/help/how-to-ask),並參加[網站之旅](http://stackoverflow.com/tour ):) – Barmar
我寫了我所嘗試過的,這不是一個家庭作業問題。也許,python部分就是你所看到的。然後我從這個問題中刪除Python。 – Ribz