문제 설명
배열 nums 및 값 발을 감안할 때, 당신은 제거 후 배열의 새 길이를 모두 같은 값을 제거하는 요소를 배치해야 발하고 돌아갑니다.
배열을위한 여분의 공간을 사용하지 마십시오, 당신은 장소에 입력 배열을 수정하고 사용 O (1) 여분의 공간의 조건을 완료해야합니다.
요소의 순서가 변경 될 수 있습니다. 당신은 새로운 배열의 길이 뒤의 요소를 넘어 고려해야 할 필요가 없습니다.
예
주어 nums = [3,2,2,3], 발 = 3,
기능 (2)의 새로운 길이를 반환해야하고, 제 1 두 요소 nums 2이다.
당신은 새로운 배열의 길이 뒤의 요소를 넘어 고려해야 할 필요가 없습니다.
실현
단일 포인터 이동, 현재 값, 포인터가 삭제 현재 요소를 움직이지 않는 포인터가 후퇴되면, 목표 값, 현재 값이 목표 값과 같은 동일하지 않은 배열 길이 빼기 한
def remove_element(nums, val):
nums_len = len(nums)
index = 0
while(index != nums_len):
if(nums[index] == val):
del(nums[index])
nums_len -= 1
else:
index += 1
return nums_len
nums = [3, 2, 2, 3]
val = 3
result = remove_element(nums, val)
print(result)
개요
루프는 루프보다 동안 종종, 경계 값이 결정되는 인덱스 값은 쉽게 설정