源代码分析
其实这个题,我进行遍历的时候已经出现问题了,题木要求的是我只需要能够返回返回的数组就行了,所以对于这个题,我们不需要进行交换,只需要进行替换就可以了
改进代码
for(int i=0;i<length-count;i++){
if(nums[i]==val){
nums[i]=nums[length-1-count];
count++;
i--;
}
}
源代码
package 数组;
import java.util.Scanner;
public class 移除元素27 {
public static void main(String[] args) {
int n;
Scanner input = new Scanner(System.in);
System.out.println("请输入数组的长度");
n=input.nextInt();
int[] num = new int[n];
System.out.println("输入数组的元素");
for (int i = 0; i < num.length; i++) {
num[i]= input.nextInt();
}
System.out.println("请输入你要移除的目标值");
int target = input.nextInt();
int index= num.length-removeElement(num,target);
System.out.println(index);
for (int i = 0; i < index; i++) {
System.out.println(num[i]);;
}
}
public static int removeElement(int[] nums, int val) {
int length = nums.length;
//int left=0,right= length-1;
int count=0;
//循环的终止条件需要注意
for(int i=0;i<length-count;i++){
if(nums[i]==val){
int temp = nums[length-1-count];
nums[length-1-count]=nums[i];
nums[i]=temp;
count++;
i--;
}
}
return count;
}
}