蓝桥杯 算法提高 6-9删除数组中的0元素 Java

蓝桥杯 算法提高 6-9删除数组中的0元素 Java

资源限制

时间限制:1.0s 内存限制:512.0MB

要求

编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。
  输入时首先读入数组长度,再依次读入每个元素。
  将调用此函数后得到的数组和函数返回值输出。

样例输入

7
2 0 4 3 0 0 5

样例输出

2 4 3 5
4

import java.util.Scanner;
public class Main {
 
    public static void main(String[] args) {
    	Scanner input=new Scanner(System.in);
    	int a=input.nextInt();//接收数组的长度
    	
        int[] oldArr=new int[a];
        for(int i = 0; i < a; i++){
        	oldArr[i] = input.nextInt();
        }//将输入的每个数都存储在oldArr数组中
        
        input.close();
        
        int zero=0; 
        for(int i=0;i<a;i++){
            if(oldArr[i]==0){
                zero++;
            }
        }//计算oldArr数组0的个数
        
        int newArr[]=new int[a-zero];//将新数组的长度定义为原数组长度-0的个数
        int j=0;
        for(int i=0;i<a;i++){ 
            if(oldArr[i]!=0){
                newArr[j]=oldArr[i];
                j++;
            }
        }//将oldArr数组中不为0的值储存在新数组中newArr
        
        for(int n:newArr){
            System.out.print(n+" ");
        }//将新数组的每一位输出并空格
        
        System.out.printf("\n");//换行
        System.out.println(newArr.length);//输出新数组的长度
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值