数组-移除元素
026-双指针法删除重复元素
public class _026 { public static void main(String[] args) { _026 v = new _026(); int[] arr = new int[]{0,0,1,1,1,2,2,3,3,4}; System.out.println(v.removeDuplicates(arr)); } /** * 双指针法删除重复元素 * @param nums * @return */ public int removeDuplicates(int[] nums) { int slowIndex=1; for(int fastIndex=1;fastIndex<nums.length;fastIndex++){ if(nums[fastIndex]!=nums[fastIndex-1]){ nums[slowIndex]=nums[fastIndex]; slowIndex++; } } return slowIndex; } }双指针法删除重复元素
--
027-双指针法原地删除目标元素
public class _027 { public static void main(String[] args) { int[] arr=new int[]{3,2,2,3}; _027 v = new _027(); System.out.println(v.removeElement(arr, 3)); } /** * 双指针法原地删除目标元素 * @param nums * @param val * @return */ public int removeElement(int[] nums, int val) { int slowIndex=0; for (int fastIndex=0;fastIndex<nums.length;fastIndex++){ if(nums[fastIndex]!=val){ nums[slowIndex]=nums[fastIndex]; slowIndex++; } } return slowIndex; } }双指针法原地删除目标元素
--
283-双指针发移动元素
public class _283 { public static void main(String[] args) { _283 v = new _283(); int[] arr = new int[]{0,1,0,3,12}; v.moveZeroes(arr); for (int i : arr) { System.out.println(i); } } /** * 移动零 * 将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序 * @param nums */ public void moveZeroes(int[] nums) { int slowIndex=0; for(int fastIndex=0; fastIndex< nums.length; fastIndex++){ if(nums[fastIndex]!=0){ swap(nums, slowIndex, fastIndex); slowIndex++; } } } public void swap(int[] nums, int left, int right){ int temp=nums[left]; nums[left]=nums[right]; nums[right]=temp; } }移动零
--
标签:arr,nums,int,fastIndex,数组,new,public From: https://www.cnblogs.com/kezhang/p/17011685.html