>  기사  >  Java  >  LeetCode & Q26-정렬된 배열에서 중복 제거-쉬움

LeetCode & Q26-정렬된 배열에서 중복 제거-쉬움

PHP中文网
PHP中文网원래의
2017-07-09 18:12:131456검색

설명:

정렬된 배열이 주어지면 각 요소가 한 번만만 나타나도록 중복 항목을 제거하고 새 길이를 반환합니다.

다른 배열에 추가 공간을 할당하지 마십시오. 일정한 메모리를 사용하여 이 작업을 수행해야 합니다. 예를 들어

주어진 입력 배열 nums = [1,1,2],[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.

我写的一直有问题...用了HashSet集合,没有研究过这个类型,[1,1,2]输出结果一直是[1,1]

(在小本本上记下,要研究HashSet)

<code class="sourceCode java"><span class="kw">import java.util.HashSet;</span>

<span class="kw">import java.util.Set;</span>

<span class="kw">public</span> <span class="kw">class</span> Solution {

    <span class="kw">public</span> <span class="dt">static</span> <span class="dt">int</span> <span class="fu">removeDuplicates</span>(<span class="dt">int</span>[] nums) {

        Set<Integer> tempSet = <span class="kw">new</span> HashSet<>();

        <span class="kw">for</span>(<span class="dt">int</span> i = <span class="dv">0</span>; i < nums.<span class="fu">length</span>; i++) {

            Integer wrap = Integer.<span class="fu">valueOf</span>(nums[i]);

            tempSet.<span class="fu">add</span>(wrap);

        }

        <span class="kw">return</span> tempSet.<span class="fu">size</span>();

    }

}</code>

下面是优秀答案

Solutions:

<code class="sourceCode java"><span class="kw">public</span> <span class="kw">class</span> Solution {

    <span class="kw">public</span> <span class="dt">static</span> <span class="dt">int</span> <span class="fu">removeDuplicates</span>(<span class="dt">int</span>[] nums) {

        <span class="dt">int</span> j = <span class="dv">0</span>;

        <span class="kw">for</span>(<span class="dt">int</span> i = <span class="dv">0</span>; i < nums.<span class="fu">length</span>; i++) {

            <span class="kw">if</span>(nums[i] != nums[j]) {

                nums[++j] = nums[i];

            }

        }

        <span class="kw">return</span> ++j;

    }

}</code>

有两个点需要注意:

  1. 因为重复的可能有多个,所以不能以相等来做判定条件
  2. 注意j++++j
  3. 함수는 길이 = 2를 반환해야 하며,
nums🎜의 처음 두 요소는 각각 12입니다. 이는 중요하지 않습니다. 새로운 길이 너머로 남겨두는 것.🎜 🎜저는 항상 제가 쓴 내용에 문제가 있었습니다... 저는 HashSet 컬렉션을 사용했고 이 유형을 연구한 적이 없습니다. [1,1,2]의 출력 결과는 항상 [1,1]🎜입니다. 🎜(HashSet 공부에 필요한 내용을 노트에 적어보세요)🎜
rrreee
🎜훌륭한 답변은 다음과 같습니다🎜 🎜솔루션:🎜
rrreee
🎜주의해야 할 두 가지 사항이 있습니다: 🎜
  • 중복이 여러개 있을 수 있으므로 동등을 판단 조건으로 사용할 수 없습니다🎜
  • j++++j의 차이점에 주의하세요. 여기서 사용법은 매우 영리하고 필요합니다! 🎜 🎜
  • 위 내용은 LeetCode & Q26-정렬된 배열에서 중복 제거-쉬움의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    이전 기사:JSP 기본 시작하기다음 기사:JSP 기본 시작하기