สร้างเมธอด MoveZeros สำรวจผ่านอาร์เรย์และนับจำนวนศูนย์ในอาร์เรย์ ขึ้นอยู่กับขนาดการนับทำให้เซลล์สุดท้ายทั้งหมดเป็นศูนย์ ส่งคืนโดยไม่ประมวลผลหากความยาวของอาร์เรย์เป็นโมฆะหรือว่างเปล่า ผลลัพธ์สุดท้ายจะเป็น nums Array ความซับซ้อนของเวลาคือ O(N) เนื่องจากเราข้ามผ่านอาร์เรย์เพียงครั้งเดียว
ความซับซ้อนของเวลา − O(N)
ความซับซ้อนของอวกาศ − O(1)
ตัวอย่าง
public class Arrays{
public void MoveZeros(int[] nums){
if (nums == null || nums.Length == 0){
return;
}
int count = 0;
for (int i = 0; i < nums.Count(); i++){
if (nums[i] != 0){
nums[count] = nums[i];
count++;
}
}
for (int i = count; i < nums.Length; i++){
nums[i] = 0;
}
}
}
static void Main(string[] args){
int[] nums = { 0, 1, 0, 3, 12 };
s.MoveZeros(nums);
foreach (var item in nums){
Console.WriteLine(item);
}
} ผลลัพธ์
[1,3,12,0,0]