【LeetCode-面試演算法經典-Java實現】【027-Remove Element(刪除數組中指定的元素)】

來源:互聯網
上載者:User

標籤:數組   面試   演算法   java   offer   

【027-Remove Element(刪除數組中的元素)】 【LeetCode-面試演算法經典-Java實現】【所有題目目錄索引】 原題

  Given an array and a value, remove all instances of that value in place and return the new length.
  The order of elements can be changed. It doesn’t matter what you leave beyond the new length.

題目大意

  給定一個數組和一個值,刪除數組中與這個值相等的元素,並且返回與這個數組的新的長度。

解題思路

  從左邊找值為elem的元素的位置,j從右邊找值不為elem的元素的位置,然後將j位置的數值移動到i位置。

代碼實現

演算法實作類別

public class Solution {    public int removeElement(int[] A, int elem) {        int exchange = 0; // 記錄交換的次數,也就是統計數組中與elem元素值相等的個數        // 演算法思想:i從左邊找值為elem的元素的位置,j從右邊找值不為elem的元素的位置,        // 取等號是讓長度為1的數組可以進入        for (int i = 0, j = A.length -1; i <= j; i++) {            if (A[i] == elem) { // 找到要交換的元素                exchange++;                while (j > i && A[j] == elem) { // 從數組後面開始向前找第一個不等於elem的元素                    exchange++; // 有值為elem的元素說明要交換,但是交換過程可以省去                    j--;                }                // 情況1:到到不為elem的元素的位置,將j位置的元素放到i位置                // 情況2:沒有找到不elem的元素的位置,即i後的所有元素值都是e,此時有j=i                // 不論哪種情況將j中的值放入i都沒有關係                A[i] = A[j];                j--; // j已經被交換使用了所以還要和前移動到一個新的位置            }        }        return A.length - exchange;    }}
評測結果

  點擊圖片,滑鼠不釋放,拖動一段位置,釋放後在新的視窗中查看完整圖片。

特別說明 歡迎轉載,轉載請註明出處【http://blog.csdn.net/derrantcm/article/details/47052643】

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

【LeetCode-面試演算法經典-Java實現】【027-Remove Element(刪除數組中指定的元素)】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.