国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

LeetCode 283. 移動零【c++/java詳細題解】

cnsworder / 593人閱讀

摘要:盡量減少操作次數。樣例如樣例所示,數組,移動完成后變成,下面來講解雙指針的做法。這樣我們就完成了元素的移動,同時也保持了非元素的相對順序。

1、題目

給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。

示例:

輸入: [0,1,0,3,12]輸出: [1,3,12,0,0]

說明:

  1. 必須在原數組上操作,不能拷貝額外的數組。
  2. 盡量減少操作次數。

2、思路

(雙指針) O ( n ) O(n) O(n)

給定一個數組 nums,要求我們將所有的 0 移動到數組的末尾,同時保持非零元素的相對順序。

樣例:

如樣例所示,數組nums = [0,1,0,3,12],移動完成后變成nums = [1,3,12,0,0] ,下面來講解雙指針的做法。

我們定義兩個指針,i指針和k指針,i指針用來遍歷整個nums數組,k指針用來放置nums數組元素。然后將非0元素按照原有的相對順序都放置到nums數組前面,剩下的位置都置為0。這樣我們就完成了0元素的移動,同時也保持了非0元素的相對順序。

具體過程如下:

  • 1、定義兩個指針ik,初始化i = 0k = 0
  • 2、i指針向后移動,遍整個nums數組,如果 nums[i] != 0,也就是說遇到了非0元素,此時我們就將nums[i]元素放置到nums[k]位置,同時k++后一位。
  • 3、最后將k位置之后的元素都賦值為0

實現細節:

遍歷數組可以使用for(int x : nums),這樣就少定義一個指針,代碼也顯得更加簡潔。

時間復雜度分析: O ( n ) O(n) O(n) n n n是數組的長度,每個位置只被遍歷一次。

時間復雜度分析: O ( 1 ) O(1) O(1) ,只需要常數的空間存放指針變量。

3、c++代碼

class Solution {public:    void moveZeroes(vector<int>& nums) {        int k = 0;        for(int x : nums)            if(x != 0) nums[k++] = x;        while(k < nums.size())  nums[k++] = 0;            }};

4、java代碼

class Solution {    public void moveZeroes(int[] nums) {        int k = 0;        for(int x : nums)            if(x != 0) nums[k++] = x;        while(k < nums.length)  nums[k++] = 0;          }}

原題鏈接: 283. 移動零

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119014.html

相關文章

  • Leetcode PHP題解--D68 283. Move Zeroes

    摘要:題目鏈接題目分析給定一個整數數組,將值為的元素移動到數組末尾,而不改動其他元素出現的順序。再在去后的元素末尾填充到計算出的數組長度。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 D68 283. Move Zeroes 題目鏈接 283. Move Zeroes 題目分析 給定一個整數數組,將值為0的元素移動到數組末尾,而不改動其他元素出現的順序。 思路 計算總共有多少個元素。 再...

    xiongzenghui 評論0 收藏0
  • LeetCode 283移動 Move Zeroes

    摘要:給定一個數組,編寫一個函數將所有移動到數組的末尾,同時保持非零元素的相對順序。盡量減少操作次數。換個思路,把非數字前移,不去管數字。這樣遍歷完之后,數組索引從到之間的數值即為所求得保持非零元素的相對順序,而之后的數值只需要全部賦值即可。 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 Given an array nums, write ...

    tianyu 評論0 收藏0
  • LeetCode 283移動 Move Zeroes

    摘要:給定一個數組,編寫一個函數將所有移動到數組的末尾,同時保持非零元素的相對順序。盡量減少操作次數。換個思路,把非數字前移,不去管數字。這樣遍歷完之后,數組索引從到之間的數值即為所求得保持非零元素的相對順序,而之后的數值只需要全部賦值即可。 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 Given an array nums, write ...

    seanlook 評論0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月匯總(100 題攻略)

    摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經到題,所以后面會調整自己,在刷算法與數據結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區別...

    tain335 評論0 收藏0
  • 小李飛刀:做題第十一彈!

    摘要:第五題對稱二叉樹難度簡單給定一個二叉樹,檢查它是否是鏡像對稱的。第十六題最大連續的個數難度簡單給定一個二進制數組,計算其中最大連續的個數。第十八題平方數之和難度簡單給定一個非負整數,你要判斷是否存在兩個整數和,使得。 寫在前面 最近忙著調教新裝備,沒有及時的寫題解,但是沒有在偷懶沒刷題喔~來認真整理下最近做的題目~ 之前考慮按tag來刷題,后來收到了推薦的leetcode題解,就根據上...

    ytwman 評論0 收藏0

發表評論

0條評論

cnsworder

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<