zoukankan      html  css  js  c++  java
  • 锯齿排列

     今天碰到一个面试题觉得挺有意思,特来记录一下.
      有一给定数组,按锯齿形状排列数组元素。比如a<b>c<d>e<f>g .... 以此类推。给定数组:{1, 2, 3, 4, 5, 6, 7, 8, 9}, 请编程。
      刚看到这个题目觉得挺新颖的,平常见到都会从大到小或者从小到大,这个来个锯齿的,这不按套路出牌啊。第一眼感觉没思路,想了一下,觉得日常我们排序都是双层循环嵌套,这个究竟特殊在哪儿呢,想了下细节,觉得应该在判断这里,然后就自己在纸上试了一下,没想到还真给蒙对了。遗憾的是纸上手写代码写错了,,,这个,,,
      代码如下:

        /**
         * 锯齿排列数组顺序
         */
        @Test
        public void test1(){
            int[] arr = {1,2,3,4,5,6,7,8,9};
    
            for(int i=0;i<arr.length-1;i++){
                int z = arr[i];
                if(i%2 == 0){ //小于
                    if(arr[i] > arr[i+1]){
                        arr[i] = arr[i+1];
                        arr[i+1] = z;
                    }
                }else{ //大于
                    if(arr[i] < arr[i+1]){
                        arr[i] = arr[i+1];
                        arr[i+1] = z;
                    }
                }
    
            }
    
            //打印数组
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i] + ", ");
            }
        }
    

      跑一下,结果如下:

      嗯,结果还是正确的,虽然是蒙的。 

  • 相关阅读:
    Scala实现Mapreduce程序4-----数据去重
    Scala实现Mapreduce程序3----数据排序
    Scala实现Mapreduce程序2-----Top5
    Scala实现Mapreduce程序1-----求平均数
    scala学习--难点
    scala基础--01
    平台调优方案
    beeline on spark 自动重启--脚本
    安装rundeck脚本
    杀死所有的kitchen进程
  • 原文地址:https://www.cnblogs.com/nevermorewang/p/9811755.html
Copyright © 2011-2022 走看看