찌꺼기 를 배 우 는 문제 풀이 여행 leetcode 문제 풀이 27.요소 제거
4622 단어 leetcode
추가 배열 공간 을 사용 하지 마 십시오.O(1)추가 공간 만 사용 하고 입력 배열 을 제자리 에서 수정 해 야 합 니 다.
원소 의 순 서 를 바 꿀 수 있다.너 는 배열 에서 새로운 길이 뒤의 요 소 를 초과 하 는 것 을 고려 할 필요 가 없다.
주어진 nums=[3,2,2,3],val=3,함 수 는 새로운 길이 2 를 되 돌려 야 하고 nums 의 앞의 두 요 소 는 모두 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]); }
내 c+코드
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
if(nums.empty())
return nums.size();
int i=nums.size()-1;
for(;i>=0&&nums.empty()==false;i--){
if(nums[i]==val){
nums.erase(nums.begin()+i);
}
}
return nums.size();
}
};
어제 의 기초 가 있어 서 오늘 도 곧 해결 되 었 다.vector 를 배 워 서 지정 한 아래 표 시 된 요 소 를 삭제 하고 특정한 요 소 를 삭제 하 며 그 후의 모든 요 소 를 앞으로 이동 합 니 다.교체 기 는 변 하지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
0부터 시작하는 LeetCode Day8 「1302. Deepest Leaves Sum」해외에서는 엔지니어의 면접에 있어서 코딩 테스트라고 하는 것이 행해지는 것 같고, 많은 경우, 특정의 함수나 클래스를 주제에 따라 실장한다고 하는 것이 메인이다. 빠른 이야기가 본고장에서도 행해지고 있는 것 같은 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.