day01 双指针
01-删除有序数组中的重复项
import org.junit.Test;
// https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
public class RemoveDuplicatesCase {
int removeDuplicates(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}
int slow = 0, fast = 0;
for (fast = slow + 1; fast < nums.length; fast++) {
if (nums[fast] != nums[slow]) {
nums[++slow] = nums[fast];
}
}
return slow + 1;
}
@Test
public void test() {
int[] nums = {1, 1, 2};
// int[] nums = {0, 0, 1, 1, 1, 2, 2, 3, 3, 4};
System.out.println(removeDuplicates(nums));
}
}
02-移除元素
import org.junit.Test;
// https://leetcode-cn.com/problems/remove-element/
public class RemoveElementCase {
int removeElement(int[] nums, int val) {
if (nums == null || nums.length == 0) {
return 0;
}
int slow = 0, fast = 0;
while (fast < nums.length) {
if (nums[fast] != val) {
nums[slow++] = nums[fast];
}
fast++;
}
return slow;
}
@Test
public void test() {
int[] nums = {0, 1, 2, 2, 3, 0, 4, 2};
int var = 2;
System.out.println(removeElement(nums, var));
}
}