給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。
示例:輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說明:必須在原陣列上操作,不能拷貝額外的陣列。
儘量減少操作次數。
//一次遍歷陣列,找到乙個非零就移到前面(用 j 不斷標記非零元素的位置),然後自己的位置換為0
class solution
j++;}}
}}//同上,遍歷陣列,如果i>j,遇到非零賦給j位,i位變為0
class solution
j++;}}
}}
//兩次遍歷
class solution
//第一次遍歷的時候,j指標記錄非0的個數,只要是非0的統統都賦給nums[j]
int j = 0;
for(int i=0;i盛最多水的容器
給你 n 個非負整數 a1,a2,...,an,每個數代表座標中的乙個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
說明:你不能傾斜容器,且 n 的值至少為 2。
圖中垂直線代表輸入陣列 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍色部分)的最大值為 49。
示例:輸入:[1,8,6,2,5,4,8,3,7]
輸出:49
class solution
}return max;}}
// 面積 = 寬度 * 高度,從兩邊向中間縮小,寬度減小了,只有高度增大了才有可能面積更大
class solution
return max;
}}// 同上
class solution
return max;}}
LeetCode283 移動零(簡單)
原題目給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。題目大意 將陣列所有的零移至末尾,且不改變其他數字的順序,且只能開闢常數級...
leetcode 283 移動零 快慢指標
給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。思路雙指標法。這道題目相當經典,將所有 0 移動到陣列的末尾,分為兩步,第一是將...
leetcode 283 移動零,雙指標解法
題目描述 給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。public void movezeroes int nums 思路 ...