java领扣题:4 移除元素

给定一个数组 nums 和一个值 val 你需要原地移除所有数值等于val的元素,返回移除后数组的新长度,不要使用额外的数组空间

元素的顺序可以改变,你不需要考虑数组中超出新长度后面的元素

示例 1

给定 nums = {3,2,2,3};  val = 3;

函数应该返回新的长度 2 , 并且 nums中的前两个元素均为 2

你不需要考虑数组中超出新长度后面的元素

代码:

public class LingKou4 {
    public static void main(String[] args){
        int sum=0;
        int m2[]=m1(new int[]{1,2,3,3,4,5,5,5,6,7},5,0);
        for( int a1=0;a1<m2.length;a1++){
            System.out.println(m2[a1]);
        }
    }
    //参数为数组,应删除的数,删除了几个
    public static int[] m1(int m[],int flag,int sum){    
        //检查数组,看删除那个
        for(int a=0;a<m.length-1;a++){
            if (m[a]==flag)
            {
                //删除该数,将后面数组补充到前面
                for(int c=a;c<m.length-1;c++){
                m[c]=m[c+1];
                }
//                如果补充的数也是该删的数的话,a--,就是再循环一次本数组下标的数。
                if(m[a]==flag)
                    a--;
                sum++;
                }    
        }
        int newm[]=new int[m.length-sum];
        for( int b=0;b<newm.length;b++){
            newm[b]=m[b];
        }
        return newm;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值