給定一個數組 nums,編寫一個函數將所有 0 移動到數組的開頭,同時保持非零元素的相對順序
給定一個數組 nums,編寫一個函數將所有 0 移動到數組的開頭,同時保持非零元素的相對順序,并且不能有額外的內存開銷(不能創建數組)只能在原數組上操作
例:
[0, 8, 5, 0, 134, 0, 3, 6, 5, 0, 7, 0]
結果要輸出:
[0, 0, 0, 0, 0, 8, 5, 134, 3, 6, 5, 7]
int[] nums = {0, 8, 5, 0, 134, 0, 3, 6, 5, 0, 7, 0}; // 定義用來儲存0出現的數量 int j = 0; for (int i = nums.length - 1; i > 0; i--) { if(nums[i] == 0) { //0計數器 j++; } else if (nums[i] != 0) { //如果不等0就與后temp個進行移位交換 nums[i + j] = nums[i]; nums[i] = 0; } } System.out.println(Arrays.toString(nums));

浙公網安備 33010602011771號