我是初學者,希望得到您的幫助
它是從排序陣列中洗掉重復項
func remove(nums []int)int{ i,j:= 0,0 //Why is it wrong to use if here? // if j< len(nums) for j < len(nums){ if i==0 || nums[i-1]!= nums[j]{ nums[i] = nums[j] i j }else{ j } } return i}
func main(){ nums := []int{1,2,2,3,5,5} result := remove(nums) fmt.Println(result) }請幫我
uj5u.com熱心網友回復:
在短時間內,這就是我所擁有的:
func remove(nums []int) int {
temp := map[int]string{}
for _, n := range nums {
temp[n] = "exist"
}
result := []int{}
for n, _ := range temp {
result = append(result, n)
}
return result
}
輸出是:
[1 2 3 5]
遍歷切片并放入地圖。遍歷地圖并放入切片。回傳新切片。
uj5u.com熱心網友回復:
它是一個排序的數字串列,因此您可以存盤添加到結果串列中的最后一個數字,如果下一個數字相同,則跳過添加到結果串列中。
func remove(nums []int) []int {
if len(nums) == 0 {
return []int{}
}
result := []int{nums[0]}
current := nums[0]
for _, num := range nums {
if current == num {
continue
}
result = append(num)
current = num
}
return result
}
如果您問為什么使用 是錯誤的for j < len(nums),那不是錯誤,但是使用for _, num := range nums會使您的生活更輕松,因為您不必跟蹤您在陣列中的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357393.html
上一篇:在python基本猜測操作中應該激活“else”時,如何修復使用“and”引數激活的“if”陳述句?
下一篇:意外的“如果”(T_IF)
