halfrost/LeetCode-Go

0027 Remove Element 有道题不明白

fecqs opened this issue · 2 comments

fecqs commented

func removeElement(nums []int, val int) int {

	if len(nums) == 0 {
		return 0
	}

	j := 0
	for i := 0; i < len(nums); i++ {
		if nums[i] != val {
                         // 我不明白为什么要非加这段求解释。      
			//if i != j {
			//	nums[i], nums[j] = nums[j], nums[i]
			//}
			j++
		}
	}
	return j

}

@fecqs 这一行代码去掉当然也可以 Accept。我加这一行只是为了提高一下速度,因为 i = j 的时候,代表同一个元素,此时第 11 行代码再做一个交换就没有意义了,而且也浪费 runtime 时间。

fecqs commented

@fecqs 这一行代码去掉当然也可以 Accept。我加这一行只是为了提高一下速度,因为 i = j 的时候,代表同一个元素,此时第 11 行代码再做一个交换就没有意义了,而且也浪费 runtime 时间。

thx。