zoukankan      html  css  js  c++  java
  • 华为笔试题---明明的随机数

    题目

    • 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

    • 输入输出


    Input Param
    n               输入随机数的个数
    inputArray      n个随机整数组成的数组
    
    Return Value
    OutputArray    输出处理后的随机整数
    
    
    注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。
    

    输入描述

    输入多行,先输入随机整数的个数,再输入相应个数的整数
    

    输出描述

    返回多行,处理后的结果
    

    package 华为笔试题.明明的随机数;
    
    import java.util.Scanner;
    
    /**
     * @Author: Lance
     * @Date: 2018/8/7 16:03
     */
    public class Main
    {
    
        public static void main(String[] args)
        {
    
            Scanner scanner = new Scanner(System.in);
    
    
            while (scanner.hasNext())
            {
    
                int temp = scanner.nextInt();
                int[] flag = new int[temp + 1];
    
    
                for (int i = 1; i <= temp; i++)
                {
                    flag[i] = scanner.nextInt();
    
                }
    
                Main test = new Main();
                int[] newArr = test.insertSort(flag);
    
                for (int i = 1; i < newArr.length; i++)
                {
                    if (newArr[i] == newArr[i - 1])
                    {
                        continue;
                    }
                    System.out.println(newArr[i]);
                }
    
    
            }
    
            //创建对象实现方法
    
        }
    
        public int[] insertSort(int[] arr)
        {
    
            if (arr.length == 1 && arr.length == 2)
            {
                return null;
            }
            for (int i = 1; i < arr.length; i++)
            {
    
                //以下一行代码可以理解为,我扣了i张牌,第i张牌和前i-1张牌依次对比
                for (int j = i - 1; arr[j] >= 0 && arr[j] > arr[j + 1]; j--)
                {
                    swap(arr, j, j + 1);
                }
    
            }
            return arr;
    
        }
    
        public void swap(int[] arr, int i, int j)
        {
    
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
    
        }
    
        /**
         * 删除数组中多余的元素
         *
         * @param arr
         * @return
         */
        public int[] removeDuplicates(int[] arr)
        {
    
            int cout = 0;
    
            for (int i = 0; i < arr.length; i++)
            {
                for (int j = i + 1; j < arr.length; j++)
                {
                    if (arr[i] == arr[j])
                    {
                        cout++;
                        break;
                    }
                }
            }
    
            int lenth = arr.length - cout;
            int[] newArr = new int[lenth];
    
            if (arr.length == 1)
            {
                return arr;
            }
    
            int index = 1;
            newArr[0] = arr[0];
    
            for (int i = 1; i < arr.length; i++)
            {
                if (arr[i] != arr[i - 1])
                {
                    newArr[index++] = arr[i];
                }
            }
            return newArr;
    
    
        }
    }
    
    
    
  • 相关阅读:
    数据结构(java语言描述)顺序栈的使用(两个大数相加)
    DB2 Sql性能查看与优化
    spring默认为单例模式
    Java map的匿名类的初始化
    使用nohup后台执行ftp传输命令
    停止一个java的线程执行
    静态类
    XML语法随记
    Crontab有关
    string转Date转回String(JAVA)
  • 原文地址:https://www.cnblogs.com/lancexu/p/9439277.html
Copyright © 2011-2022 走看看