leetcode陣列練習題2:283. 移動零
給定一個陣列 nums,編寫一個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。
示例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說明:
必須在原陣列上操作,不能拷貝額外的陣列。
儘量減少操作次數。
通過次數277,991提交
陣列
雙指標 解法
這是之前寫的O(n) 的 時間複雜度解法,空間複雜度我忘了咋算了今晚回去補補
- 空指標判斷,和陣列為空退出
- 這題不需要排序只需要將非零元素與等零元素交換位置即可。
雙指標體現在哪裡呢,這裡面有 i 和 j 兩個變數, i 是隨著迴圈自增 而 j 是隨著滿足條件自增,就構成了快慢兩個指標;交換的時候會出現 i 和 j 相等且不等於零的時候,比如 {1,1,1,0}; 程式還是會進入if判斷執行浪費時間,能否避免這種情況呢 ?
目前我認為不能,因為不能確定 0 出現的位置。
void moveZeroes(int* nums, int numsSize)
{
if(nums==NULL || numsSize==0)
return;
int j=0;
for(int i = 0;i<numsSize;i++)
{
if(nums[i]!=0)
{
int temp = nums[i];
nums[i] = nums[j];
nums[j++] = temp;
}
}
}
相關文章
- leetcode 283. 移動零(簡單)LeetCode
- 283. 移動零
- 力扣-283. 移動零力扣
- leetcode:面試題 01.08. 零矩陣(陣列,中等)LeetCode面試題矩陣陣列
- LeetCode每日一題: 移動零(No.283)LeetCode每日一題
- LeetCode刷題—陣列LeetCode陣列
- LeetCode:移動零(java)LeetCodeJava
- JAVA 陣列 練習Java陣列
- leetcode題解(陣列問題)LeetCode陣列
- leetcode_283. 移動零LeetCode
- 二維陣列練習陣列
- Java學習之陣列練習Java陣列
- 2020/11/17·Leetcode·移動零LeetCode
- 六,陣列筆記及相關練習題大全陣列筆記
- 2-7 陣列:動態陣列陣列
- 笨辦法學C 練習34:動態陣列陣列
- 指標陣列練習排列字串指標陣列字串
- Java學習筆記——陣列練習(七)Java筆記陣列
- 【Leetcode刷題篇】leetcode152 乘積最大陣列LeetCode陣列
- 程式練習題(2)
- leetcode:462. 最少移動次數使陣列元素相等 II(數學,中等)LeetCode陣列
- 習題8-3 陣列迴圈右移 及 練習7-8 方陣迴圈右移陣列
- LeetCode每日一題: 旋轉陣列(No.189)LeetCode每日一題陣列
- 演算法題-移動零演算法
- LeetCode每日一題: 按奇偶排序陣列(No.905)LeetCode每日一題排序陣列
- LeetCode每日一題: 有序陣列的平方(No.977)LeetCode每日一題陣列
- LeetCode題解(0330):按要求補齊陣列(Python)LeetCode陣列Python
- LeetCode 189 旋轉陣列LeetCode陣列
- Python練習-LeetCode 第1篇 順時針列印矩陣PythonLeetCode矩陣
- 矩陣置零—leetcode73矩陣LeetCode
- C的二維陣列(習題)陣列
- 樹狀陣列模板+習題集陣列
- 【LeetCode-陣列】陣列式整數加法LeetCode陣列
- Java陣列小練筆Java陣列
- 【刷題筆記】LeetCode-53 最大子陣列和筆記LeetCode陣列
- LeetCode每日一題:找陣列的中心索引(No.724)LeetCode每日一題陣列索引
- LeetCode每日一題: 按奇偶排序陣列 II(No.27)LeetCode每日一題排序陣列
- 【LeetCode】189. 旋轉陣列LeetCode陣列