<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                >[success] # Leetcode -- 283 移動零 * 題目描述 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 **請注意**?,必須在不復制數組的情況下原地對數組進行操作。 * 示例 1: ~~~ 輸入: nums = [0,1,0,3,12] 輸出: [1,3,12,0,0] ~~~ * 示例 2: ~~~ 輸入: nums = [0] 輸出: [0] ~~~ * 提示: ~~~ 1 <= nums.length <= 104 -231?<= nums[i] <= 231?- 1 ~~~ 來源:力扣(LeetCode) 鏈接:https://leetcode.cn/problems/move-zeroes 著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。 >[info] ## 用額外數組接收 **定義一個新數組長度和原數組一樣**,并且數組初始**每個值都為0**,循環原數組找到一個**非0的值**將值從**新數組角標0開始插入**并加**1**,依次知道數組循環結束 ![](https://img.kancloud.cn/5d/0e/5d0e56cffc9f1bf5fb778b88147be3db_1222x850.png) ![](https://img.kancloud.cn/d8/65/d865b9dcd873407c22ea38bc9f331607_648x426.png) >[danger] ##### js 代碼 ~~~ /** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ var moveZeroes = function (nums) { const { length } = nums // 生成一個接收 const newArray = new Array(length).fill(0) // 循環舊數組 如果不是0 插入新數組 let i = 0 for (let key in nums) { const val = nums[key] if (val) { newArray[i++] = val } } nums.forEach((item,index)=>{ nums[index] = newArray[index] }) } ~~~ >[danger] ##### java 代碼 ~~~ class Solution { public void moveZeroes(int[] nums) { // 獲取當前數組長度 int len = nums.length; // 創建一個新數組 int[] newArray = new int[len]; int idx= 0; for(int i=0;i<len;i++){ if(nums[i] !=0){ newArray[idx++] = nums[i]; } } // 重新賦值 for(int i=0;i<len;i++){ nums[i] =newArray[i]; } } } ~~~ >[info] ## 雙指針解法 利用**雙指針**,雙指針最開始位置都是**數組起始點**,**快指針**不受任何條件影響每次都會**自增1**,**慢指針**只有在**快指針**所處位置元素**不為0**時候才會前進,此時就會形成**快慢指針**,**落差位置**(形成后慢指針會一直指向0,只要和快指針位置元素交換,就可形成排序) ![](https://img.kancloud.cn/51/2d/512d042f966f31316c7ea1ac10e19917_928x854.png) >[danger] ##### js 解法 ~~~ var moveZeroes = function (nums) { let fast = 0 let slow = 0 while(fast<nums.length){ // 只有當快指針不為0的時候慢指針才移動 if( nums[fast]!==0 ){ // 快慢指針在同一個元素時候不移動 if (slow != fast) { ;[nums[fast], nums[slow]] = [nums[slow], nums[fast]] } slow++ } fast++ } } ~~~ >[danger] ##### java ~~~ class Solution { public void moveZeroes(int[] nums) { // 創建快慢指針 int fast = 0; int slow = 0; int temp; while(nums.length>fast){ // 慢指針只有在快指針不等于0時候才會移動 if(nums[fast] !=0){ // 形成快慢指針進行位置交換 if(fast!= slow){ temp = nums[fast]; nums[fast] = nums[slow]; nums[slow] = temp; } slow++; } fast++; } } } ~~~ >[info] ## 雙指針解法二 上面雙指針中需要變量交換,交換的過程需要**創建第三方變量用來傳遞**,**變量創建會開辟內存空間**,如果交換的過程**忽略交換**,在最后慢**指針停留位置數據手動更改為0** ![](https://img.kancloud.cn/bf/96/bf96992d97e78e47cc6f888126c0db7e_1119x1676.png) * 慢指針后要變0 ![](https://img.kancloud.cn/91/2d/912df605eeea1bb8a920669d927db78a_1103x348.png) >[danger] ##### js ~~~ /** * @param {number[]} nums * @return {void} Do not return anything, modify nums in-place instead. */ var moveZeroes = function(nums) { // 聲明快慢指針 let fast = 0 let slow = 0 while(nums.length>fast){ if(nums[fast]){ if(fast!=slow){ nums[slow] = nums[fast] } slow++ } fast++ } while(slow<nums.length){ nums[slow++] = 0 } }; ~~~ >[danger] ##### java ~~~ class Solution { public void moveZeroes(int[] nums) { // 快慢指針 int fast = 0; int slow = 0; int len = nums.length; while(fast<len){ // 如果有值滿指針移動 if(nums[fast]!=0){ nums[slow] = nums[fast]; slow++; } // 快指針移動 fast++; } // 將慢指針后面都歸0 for(int i=slow;i<len;i++){ nums[i] = 0; } } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看