zoukankan      html  css  js  c++  java
  • 一种将0元素前置的实现方案

    package algorithm;

    import java.util.Arrays;

    /**
     * 将0元素前置
     * @author Administrator
     *
     */
    public class PreposeZero {

     public static void prepose(int[] pData){
      int count = 0;//0的个数
      int step = 0;
      for(int i=pData.length-1;i>0;i--){
       if(count > 0){
        /**
         * 判断0的个数与循环剩余次数,如果少于或者等于的话,全部置0
         */
        if(i+1 <= count){
         pData[i] = 0;
        }
        /**
         * 如果循环过程中,碰到0元素的处理
         */
        if(pData[i] == 0){
         count++;
        }
        /**
         * 如果循环中的前一个元素也是零的话,让步长给加1
         */
        if(pData[i-1]==0){
         step ++ ;
         count ++;
         continue;
        }
        pData[i+step] = pData[i-1];
       }else {
        if(pData[i] == 0){
         pData[i] = pData[i-1];
         count++;
        }
       }
      }
      
     }
     public static void prepose1(int[] pData){
      int num = 0;
      for(int i=pData.length-1;i>0;i--){
       if(pData[i] == 0){
        num ++ ;
       }
       else if(num >0){
        pData[i+num]= pData[i];
        pData[i] =0 ;
       }
       
      }
     }
     public  static void main(String[] args) {
      int[] pData = {0,1,72,3,0,5,9,0,0,6,51,0,3};
      prepose(pData);
      System.out.println(Arrays.toString(pData));
     }
    }

  • 相关阅读:
    redis 下载安装
    Docker之网络
    容器与镜像
    Docker之容器
    Docker之镜像
    在安装完windows和linux双系统后,删除BIOS中的引导启动项在Window下
    Ububtu 18.04中如何在火狐浏览器中安装flash插件
    lambda 表达式
    IDEA DeBug mode
    spring 系统启动加载的类
  • 原文地址:https://www.cnblogs.com/xinzhuangzi/p/4100453.html
Copyright © 2011-2022 走看看