에서 마지막 요소를 제거 나는 다음과 같은 코드가 있습니다슬라이스
func TestRemoveElement(t *testing.T) {
nums := []int{3, 2, 2, 3}
result := removeElement(nums, 3)
if result != 2 {
t.Errorf("Expected 2, but it was %d instead.", result)
}
}
func removeElement(nums []int, val int) int {
for i, v := range nums {
if v == val {
nums = append(nums[:i], nums[i+1:]...)
}
}
return len(nums)
}
if
문 내부의 문이 answer 당 조각의 요소를 대체하는 가장 인기있는 방법입니다. 그러나 이것은 i+1
으로 인해 마지막 요소를 삭제하지 못합니다. 즉, 일치 항목이 마지막 요소에서 발견되면 i+1
이 범위를 벗어납니다. 마지막 요소를 고려하는 요소를 대체하는 더 좋은 방법은 무엇입니까?
for {if i == len (nums) {break}'을 쓰는 관용구는'for i