我想反转一个数组而不改变负数的位置。下面是我尝试的程序&我在这里缺少一些简单的逻辑。如果你能帮忙的话,我将不胜感激。
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)
}
预期输出:[5 3 2 -4 1 -6 -7]
我得到的输出:【-6 5 3 -4 2 1 -7】
1条答案
按热度按时间3htmauhk1#
你已经很接近了,你只需要在检查number是否为负数的条件后添加
continue
。所以你的swapContents1
函数看起来像这样: