• 华为机试题3[编程题] 明明的随机数


    [编程题] 明明的随机数

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

      Input Param 

         n               输入随机数的个数     

     inputArray      n个随机整数组成的数组 

         

    Return Value

         OutputArray    输出处理后的随机整数


    注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。 

    输入描述:

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

    输出描述:

    返回多行,处理后的结果

    输入例子:
    11
    10
    20
    40
    32
    67
    40
    20
    89
    300
    400
    15
    输出例子:
    10
    15
    20
    32
    40
    67
    89
    300
    400
    
    说说思路:这道题我原本的想法是想去重然后再排序,去重和排序都是用最辛苦的办法,但是这样时间复杂度估计要爆表。
    所以上网搜了更好的解决方案,先用set集合去重,再丢进list的集合里面使用Collections.sort()方法排序。如果华为的机试环境不能支持这种库,那就只能老办法遍历了。
    如果有更好的思路,请大神留下建议。
    import java.util.*;
    
    public class Main{
        public static void main(String[] args){
            Scanner in = new Scanner(System.in);
            while(in.hasNext()){
                Set<Integer> set = new HashSet<>();
                int n = in.nextInt();
                for(int i=0;i<n;i++){
                    set.add(in.nextInt());
                }
                List<Integer> list = new ArrayList<>();
                list.addAll(set);
                Collections.sort(list);
                for(int i:list){
                    System.out.println(i);
                }
            }
        }


  • 相关阅读:
    c# 反射取其他项目的资源文件
    【分享】免费建立自己的站点
    c# 自定义类型的DataBindings
    ListView 多行拖拽排序
    linq to sql之组装where条件下的'或'语句
    dotfuscator使用方法
    orderBy 传入属性的字符串
    WCF数据交互时长度超过8192
    ASP.net中aspx与cs函数的互调
    c# 读取excel数据的两种方法
  • 原文地址:https://www.cnblogs.com/weimiaomiao/p/5770274.html
Copyright © 2020-2023  润新知