題目:移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o(1) 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。
示例 1:
給定 nums = [3,2,2,3], val = 3,
函式應該返回新的長度 2。
示例 2:
給定 nums = [0,1,2,2,3,0,4,2], val = 2,
函式應該返回新的長度 5。
思路:
1.判斷是否為空。
2.建立兩個指標,i 為慢指標,j 為快指標。
3.快指標從 0 開始遍歷,當快指標 j 等於 val 時,繼續遍歷。
4.當快指標 j 不等於 val 時,將快指標 j 對應的元素賦予慢指標 i,然後 i++。遍歷完畢,慢指標對應的所有元素即為新陣列。
注意點:
1.遍歷時快指標從舊陣列下標 0 開始。
2.慢指標 i 先賦值,後移位。
**:
public class demo27 ;
int len = new solution27().removeelement(nums, 1);
system.out.println(len);
for (int i = 0; i < len; i++) }}
class solution27
// 2.建立兩個指標,i 為慢指標,j 為快指標
int i = 0;
// 3.快指標從 0 開始遍歷,當快指標 j 等於 val 時,繼續遍歷
// 4.當快指標 j 不等於 val 時,將快指標 j 對應的元素賦予慢指標 i,然後 i++。遍歷完畢,慢指標對應的所有元素即為新陣列
for (int j = 0; j < nums.length; j++)
} return i;
}}
27 移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地 移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3...
27 移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...
27 移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...