\#매일 한 문제\#27.원소 제거-20191020

1461 단어 쌍 침 법
제목 링크
원소 제거
제목 의 대의
배열 nums 지정 값 val 과 같은 값 을 제자리 에서 제거 해 야 합 니 다. val 제거 한 배열 의 새 길 이 를 되 돌려 줍 니 다.
추가 배열 공간 을 사용 하지 마 십시오.입력 배열 을 제자리 에서 수정 하고 O(1)추가 공간 을 사용 하 는 조건 에서 완성 해 야 합 니 다.
원소 의 순 서 를 바 꿀 수 있다.너 는 배열 에서 새로운 길이 뒤의 요 소 를 초과 하 는 것 을 고려 할 필요 가 없다.
예시 1:
   nums = [3,2,2,3], val = 3,

           2,    nums           2。

                   。

예시 2:
   nums = [0,1,2,2,3,0,4,2], val = 2,

           5,    nums          0, 1, 3, 0, 4。

             。

                   。

설명:
왜 반환 수 치 는 정수 이지 만 출력 의 답 은 배열 입 니까?
입력 배열 은'인용'방식 으로 전 달 됩 니 다.이것 은 함수 에서 입력 배열 을 수정 하 는 것 이 호출 자 에 게 보 이 는 것 을 의미 합 니 다.
당신 은 내부 조작 이 다음 과 같다 고 상상 할 수 있 습 니 다.
// nums   “  ”     。    ,         
int len = removeElement(nums, val);

//                    。
//            ,                    。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

문제 풀이 의 사고 방향.
정렬 배열 의 중복 항목 을 삭제 하 는 사고 와 비슷 합 니 다.여 기 는 더 이상 반복 되 지 않 습 니 다.
class Solution {
public:
    int removeElement(vector& nums, int val) {
        int l = 0;
        for(int i = 0; i < nums.size(); i++) {
            if(nums[i] == val) continue;
            else nums[l++] = nums[i];
        }
        return l;
    }
};

문 제 를 풀 고 깨닫다.
이틀 동안 간단 한 문제 두 문 제 를 풀 었 는데................................................................

좋은 웹페이지 즐겨찾기