LeetCode(26) 문제: Remove Duplicates from Sorted Array

2748 단어 LeetCode
https://leetcode.com/problems/remove-duplicates-from-sorted-array/
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,Given input array nums =  [1,1,2] ,
Your function should return length =  2 , with the first two elements of nums being  1  and  2  respectively. It doesn't matter what you leave beyond the new length.
 
생각:
또한 바늘 사상이다. 신array의 임의적인 원소를 이용하면 반드시 구array의 이 원소가 대응하는 위치인덱스보다 큰 원리(창고로 볼 수도 있다)를 가지고 두 개의 바늘을 통해 신구array를 표징한다.
새 원소를 만났을 때만 새 원소를 눌러 넣습니다.
 
AC 코드:
 1 class Solution {

 2 public:

 3     int removeDuplicates(vector<int>& nums) {

 4         if(nums.size()==0)

 5             return 0;

 6         int p=0,n=nums.size();

 7         for(int i=1;i<n;i++){

 8             if (nums[i]!=nums[p]){

 9                 nums[++p]=nums[i];

10             }

11         }

12         return p+1;

13     }

14 };

좋은 웹페이지 즐겨찾기