LeetCode 26. Remove Duplicates from Sorted Array

3748 단어 KotlinLeetCodetech

Question

  • https://leetcode.com/problems/remove-duplicates-from-sorted-array
  • Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same.
    
    Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the first part of the array nums. More formally, if there are k elements after removing the duplicates, then the first k elements of nums should hold the final result. It does not matter what you leave beyond the first k elements.
    
    Return k after placing the final result in the first k slots of nums.
    
    Do not allocate extra space for another array. You must do this by modifying the input array in-place with O(1) extra memory.
    
    승차의 정수 배열nus를 제시했기 때문에 중복된 문제를 배제한다.단, remove the duplicates in-place를 주의하십시오.
    신스 뒷부분을 자세히 읽으면 언어에 따라 배열의 길이를 바꿀 수 없기 때문에 중복된 작업을 제거하는 데 처음부터 요소를 채워야 한다고 적혀 있어 셋에서 길게 뽑을 수 없기 때문이다.

    Code


    class Solution {
        fun removeDuplicates(nums: IntArray): Int {
            var now = 0
            for (idx in 1..nums.lastIndex) {
                if (nums[now] < nums[idx]) {
                    now++
                    nums[now] = nums[idx]
                }
            }
            return now + 1
        }
    }
    
    아래 그림에서 보듯이 araynus는 [0, 0, 1, 1, 2, 3, 4]일 때 추적 작업의 그림이다.
    인덱스 0부터 숫자를 반복하지 않고 배열해야 하기 때문에 now에 위치 관리 작업을 제공합니다
    그리고 Araynus를 계속 검색해서 더 큰 숫자가 나오면 now의 오른쪽에 저장하기 위해 점차적으로 증가하고 거기서 찾은 숫자를 반복해서 저장합니다

    Profile

  • Runtime: 248 ms
  • Memory Usage: 41.7 MB
  • Submission

  • https://leetcode.com/submissions/detail/596460705/
  • 좋은 웹페이지 즐겨찾기