> Java > java지도 시간 > 본문

Leetcode — 최고의 인터뷰 — 요소 제거

DDD
풀어 주다: 2024-11-03 17:36:30
원래의
276명이 탐색했습니다.

Leetcode — Top Interview  — Remove Element

다음으로 구성된 쉬운 문제입니다.

정수 배열 nums와 정수 val이 주어지면 nums에서 발생하는 모든 val을 제자리에서 제거합니다. 요소의 순서는 변경될 수 있습니다. 그런 다음 val과 같지 않은 요소 수를 nums로 반환합니다.
val be k와 같지 않은 nums의 요소 수를 고려하여 승인을 받으려면 다음 작업을 수행해야 합니다.

nums의 처음 k개 요소에 val과 같지 않은 요소가 포함되도록 배열 nums를 변경합니다. 숫자의 크기만큼 나머지 요소도 중요하지 않습니다.
k를 반환하세요.

맞춤 심사위원:

심판위원은 다음 코드를 사용하여 솔루션을 테스트합니다.

int[] nums = [...]; // 배열 입력
int 값 = ...; // 제거할 값
int[] 예상Nums = [...]; // 정확한 길이의 예상 답변입니다.
// val과 같은 값이 없는 상태로 정렬됩니다.
int k = 제거요소(nums, val); // 구현을 호출합니다
k == ExpectNums.length;
주장 sort(숫자, 0, k); // nums의 처음 k개 요소를 정렬합니다
for (int i = 0; i nums[i] == 예상Nums[i];
주장 }

모든 주장이 통과되면 귀하의 솔루션이 승인됩니다.

예 1:
입력: nums = [3,2,2,3], val = 3
출력: 2, 숫자 = [2,2,,]
설명: 함수는 k = 2를 반환해야 하며 nums의 처음 두 요소는 2입니다.
반환된 k 뒤에 무엇을 남겨두는지는 중요하지 않습니다(따라서 밑줄로 표시됩니다).

예 2:
입력: nums = [0,1,2,2,3,0,4,2], val = 2
출력: 5, 숫자 = [0,1,4,0,3,,,_]
설명: 함수는 k = 5를 반환해야 하며 숫자의 처음 5개 요소는 0, 0, 1, 3, 4를 포함해야 합니다.
5개 요소는 어떤 순서로도 반환될 수 있습니다.
반환된 k 뒤에 무엇을 남겨두는지는 중요하지 않습니다(따라서 밑줄로 표시됩니다).

제약사항:
0 0 0

이 문제에서는 배열을 반복하고 값을 식별한 후 숫자에서 제거해야 합니다.

처음에는 다른 배열이 트릭을 수행할 수 있다고 생각할 수 있지만 나중에 값을 설정하기 위해 또 다른 반복을 수행해야 합니다. Java는 메소드 변수 참조, 즉 메소드 내부를 업데이트하지 않기 때문에 바로 설정하면 작동하지 않습니다. 변경된 것처럼 보이지만 메서드를 벗어나면 이전 참조를 유지하므로 성능 측면에서 좋지 않습니다.

최종 결과는 다른 값 외에는 다른 작업에 의존하지 않으므로 단순히 인덱스를 유지하고 var와 다르게 값을 업데이트할 수 있으며 솔루션과 동일하게 사용할 수도 있습니다.

class Solution {
    public int removeElement(int[] nums, int val) {
        int diffIndex = 0;
        for(int i=0;i<nums.length;i++) {
            if(nums[i] != val)  {
                nums[diffIndex] = nums[i];
                diffIndex++;
            }
        }
        return diffIndex;
    }
}
로그인 후 복사

런타임: 0ms, 요소 제거에 대한 Java 온라인 제출의 100.00%보다 빠릅니다.
메모리 사용량: 42MB, 요소 제거에 대한 Java 온라인 제출물의 31.68% 미만.

그렇습니다! 논의할 다른 사항이 있으면 언제든지 댓글을 남겨주세요. 누락된 사항이 있으면 알려주시면 그에 따라 업데이트할 수 있습니다.

다음 포스팅까지! :)

위 내용은 Leetcode — 최고의 인터뷰 — 요소 제거의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿