解法一:个人暴力解法
完整代码:
public int RemoveElement(int[] nums, int val) { int count = 0; for (int i = 0; i < nums.Length; i++) { if (nums[i] != val) count++; else nums[i] = -1; } for (int i = 0; i < nums.Length; i++) { if (nums[i] == -1) { for (int j = i + 1; j < nums.Length; j++) { if (nums[j] != -1) { nums[i] = nums[j]; nums[j] = -1; break; } } } } return count; }提交记录:
解法二:双指针
完整代码:
public int RemoveElement(int[] nums, int val) { int slow = 0; for (int fast = 0; fast < nums.Length; fast++) { if (nums[fast] != val) nums[slow++] = nums[fast]; } return slow; }