배열(간단 한 문제):요소 제거
3157 단어 LeetCode 문제 풀이
배열 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 이다.이 다섯 개의 요 소 는 임의의 순서 가 될 수 있 음 을 주의 하 세 요.너 는 배열 에서 새로운 길이 뒤의 요 소 를 초과 하 는 것 을 고려 할 필요 가 없다.
알고리즘 사상:
포인터 p,q 를 설정 합 니 다.포인터 p,q 는 배열 의 초기 요 소 를 가리킨다
코드:
public static int removeElement(int[] nums, int val) {
int p = 0;
int q = 0;
while(q < nums.length) {
if(val == nums[q]) {
q++;
}else {
nums[p] = nums[q];
p++;
q++;
}
}
return p;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LRU 캐 시 메커니즘 (LeetCode 146 번) 자바 구현LRU (최근 최소 사용) 캐 시 메커니즘.다음 동작 을 지원 해 야 합 니 다: 데이터 가 져 오기 get 기록 데이터 put 。 데이터 가 져 오기 get(key) - 키 (key) 가 캐 시 에 존재...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.