【LeetCode】283. Move Zeroes 제거
3335 단어 알고리즘과 데이터 구조tech
문제 개요
진열
nums
이 주어졌기 때문에 진열에 포함된 0
를 0이 아닌 원소의 순서를 바꾸지 않고 배열 끝으로 이동합니다.예:
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
구속
생각
앞에서 배열을 보고 0이 아니면 앞에서부터 순서대로 배열한다.
이미지:
nums
는 제로인지 여부를 확인하는 요소다.첫 번째 요소는
↓
이기 때문에 아무것도 하지 않는다 ↓
[0, 1, 0, 3, 12]
0
는 비영원소이기 때문에 첫 번째 한정 ↓
[0, 1, 0, 3, 12]
[1, 1, 0, 3, 12]
요소는1
이기 때문에 아무것도 하지 않는다 ↓
[1, 1, 0, 3, 12]
0
는 비영원소이기 때문에 두 번째 한정 ↓
[1, 1, 0, 3, 12]
[1, 3, 0, 3, 12]
3
는 비영원소이기 때문에 세 번째 한정 ↓
[1, 1, 0, 3, 12]
[1, 3,12, 3, 12]
이 시뮬레이션을 통해 알 수 있듯이 비영원소가 어디에 있는지 지시해야 한다12
.또한 기대하는 출력
index
이기 때문에 [1,3,12,0,0]
를 끝까지 이동하는 작업이 필요하지만 마지막 요소를 본 후0
를 마지막 요소까지 압축하면 기대하는 결과를 얻을 수 있다.다음과 같은 생각으로 구현:
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
index = 0
for n in nums:
if n != 0:
nums[index] = n
index += 1
while(index < len(nums)):
nums[index] = 0
index += 1
Reference
이 문제에 관하여(【LeetCode】283. Move Zeroes 제거), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/ike_pon/articles/06a84715d2a4098fccdc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)