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

資訊專欄INFORMATION COLUMN

LeetCode 283. 移動(dòng)零【c++/java詳細(xì)題解】

cnsworder / 583人閱讀

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

1、題目

給定一個(gè)數(shù)組 nums,編寫一個(gè)函數(shù)將所有 0 移動(dòng)到數(shù)組的末尾,同時(shí)保持非零元素的相對順序。

示例:

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

說明:

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

2、思路

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

給定一個(gè)數(shù)組 nums,要求我們將所有的 0 移動(dòng)到數(shù)組的末尾,同時(shí)保持非零元素的相對順序。

樣例:

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

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

具體過程如下:

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

實(shí)現(xiàn)細(xì)節(jié):

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

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

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

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. 移動(dòng)零

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/119014.html

相關(guān)文章

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

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

    xiongzenghui 評(píng)論0 收藏0
  • LeetCode 283移動(dòng) Move Zeroes

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

    tianyu 評(píng)論0 收藏0
  • LeetCode 283移動(dòng) Move Zeroes

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

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

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

    tain335 評(píng)論0 收藏0
  • 小李飛刀:做題第十一彈!

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

    ytwman 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<