每天一算 Move Zeros

2021-09-29 15:49:44 字數 1061 閱讀 3589

leetcode上第283號問題:move zeros

給定乙個陣列nums,寫乙個函式,將陣列中所有的0挪到陣列的末尾,⽽維持其他所有非0元素的相對位置。

舉例: nums = [0, 1, 0, 3, 12],函式運⾏後結果為[1, 3, 12, 0, 0]

思路:建立乙個臨時陣列nonzeroelements,遍歷nums,將nums中非0元素賦值到nonzeroelements中,而後按順序將nonzeroelements賦值到nums上,未遍歷的元素置0;

動畫如下:

// 時間複雜度: o(n)

// 空間複雜度: o(n)

class

solution

};

思路:設定乙個臨時變數k=0,遍歷陣列nums,將非零元素移動到nums[k]位置,同時k++,而後將【k,….nums.size()】中的元素置零。

動畫如下:

**如下:

// 原地(in place)解決該問題

// 時間複雜度: o(n)

// 空間複雜度: o(1)

class solution

};

思路:設定乙個臨時變數k=0,遍歷陣列nums,將非零元素與之前的零元素進行交換,維護變數k的值。

動畫如下:

**如下:

// 原地(in place)解決該問題

// 時間複雜度: o(n)

// 空間複雜度: o(1)

class solution

};

每天一算 Sort Colors

leetcode上第75號問題 sort colors 給定乙個包含紅色 白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色 白色 藍色順序排列。此題中,我們使用整數 0 1 和 2 分別表示紅色 白色和藍色。注意 不能使用 庫中的排序函式來解決這道題。示例 ...

每天一算 Two Sum II

leetcode上第75號問題 two sum ii 給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。說明 示例 輸入 numbers 2,7,11,15 target ...

每天一演算法(生命遊戲)

說明 生命遊戲 game of life 為1970年由英國數學家j.h.conway所提出,某一細胞的鄰居包括上 下 左 右 左上 左下 右上與右下相鄰之細胞,遊戲規則如下 復活 如果某位置原無細胞存活,而該位置的鄰居為三個,則該位置將復活一細胞。解法 生命遊戲的規則可簡化為以下,並使用case比...