editor php Baicao Membalikkan tatasusunan tanpa mengubah kedudukan nombor negatif adalah masalah biasa di Golang. Apabila berurusan dengan pembalikan tatasusunan, kaedah yang mudah dan mudah biasanya digunakan, iaitu menggunakan dua penunjuk untuk menunjuk ke kepala dan ekor tatasusunan, dan kemudian menukar nilainya sehingga dua penunjuk bertemu. Walau bagaimanapun, jika terdapat nombor negatif dalam tatasusunan, kita mungkin perlu mengekalkan kedudukannya tidak berubah. Untuk menyelesaikan masalah ini, kita boleh menggunakan dua tatasusunan tambahan, satu untuk menyimpan nombor positif dan satu lagi untuk menyimpan nombor negatif. Kemudian, kami membalikkan dua tatasusunan secara berasingan dan akhirnya menggabungkannya. Ini membolehkan anda membalikkan keseluruhan tatasusunan tanpa mengubah kedudukan nombor negatif. Kaedah ini mudah dan berkesan serta mudah dilaksanakan di Golang.
Saya mahu membalikkan tatasusunan tanpa mengubah kedudukan negatif. Di bawah adalah program yang saya cuba, saya kehilangan beberapa logik mudah di sini. Sebarang bantuan amatlah dihargai.
package main import "fmt" func swapContents1(listObj []int) { i, j := 0, len(listObj)-1 for i < j { if listObj[i] < 0 { i++ } if listObj[j] < 0 { j-- } listObj[i], listObj[j] = listObj[j], listObj[i] i++ j-- } } func main() { listObj := []int{1, 2, 3, -4, 5, -6, -7} swapContents1(listObj) fmt.Println(listObj) }
Output yang dijangka: [5 3 2 -4 1 -6 -7]
Output yang saya dapat: [-6 5 3 -4 2 1 -7]
Anda sudah sangat rapat, anda hanya perlu menambah fungsi continue
。所以你的 swapContents1
selepas syarat yang memeriksa sama ada nombor itu negatif atau tidak. akan kelihatan seperti ini:
func swapContents1(listObj []int) { i, j := 0, len(listObj)-1 for i < j { if listObj[i] < 0 { i++ continue } if listObj[j] < 0 { j-- continue } listObj[i], listObj[j] = listObj[j], listObj[i] i++ j-- } }
Atas ialah kandungan terperinci Tatasusunan terbalik dalam Golang tanpa mengubah kedudukan nombor negatif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!