精华内容
下载资源
问答
  • 请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据(用于不同的调查),希望大家能正确处理)。 注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。 当没有新的输入时,...

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

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

    当没有新的输入时,说明输入结束。

    输入描述:
    注意:输入可能有多组数据(用于不同的调查)。每组数据都包括多行,第一行先输入随机整数的个数N,接下来的N行再输入相应个数的整数。具体格式请看下面的"示例"。

    输出描述:
    返回多行,处理后的结果

    输入例子1:
    3
    2
    2
    1
    11
    10
    20
    40
    32
    67
    40
    20
    89
    300
    400
    15

    输出例子1:
    1
    2
    10
    15
    20
    32
    40
    67
    89
    300
    400

    例子说明1:
    输入解释:
    第一个数字是3,也即这个小样例的N=3,说明用计算机生成了3个1到1000之间的随机整数,接下来每行一个随机数字,共3行,也即这3个随机数字为:
    2
    1
    1
    所以第一个小样例的输出为:
    1
    2
    第二个小样例的第一个数字为11,也即…(类似上面的解释)…
    所以第二个小样例的输出为:
    10
    15
    20
    32
    40
    67
    89
    300
    400
    所以示例1包含了两个小样例!!

    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <set>
    
    using namespace std;
    /*
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            int ar[n];
            for (int i= 0;i<n;i++)
            {
                scanf("%d",ar+i);
            }
            sort(ar,ar+n,less<int>());
            int nm=unique(ar, ar+n)-ar;
            for (int i=0;i<nm;i++)
            {
                cout<<ar[i]<<endl;
            }
        }
    }*/   
    //方法一编译通过,
    
    
    //f方法二;
    
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            set<int> s;
            for (int i= 0;i<n;i++)
            {
                int t;
                cin>>t;
                s.insert(t);
            }
            for (auto x :s)
            {
                cout<<x<<endl;
            }
        }
    }
        
    
    展开全文
  • ORACLE去重排序

    2021-01-11 15:51:46
    DEMO格式如下: SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY 去重字段 ORDER BY 排序字段 DESC) RNO,去重字段,排序字段 FROM 表名) WHERE RNO=1 ORDER BY 排序字段 DESC

    DEMO格式如下:

    SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY 去重字段 ORDER BY 排序字段 DESC) RNO,去重字段,排序字段 FROM  表名) WHERE RNO=1 ORDER BY 排序字段 DESC

    展开全文
  • Java list集合去重排序 List集合根据时间排序(升序) /** * 根据时间排序倒序(其他排序如根据id排序也类似) * @param list */ private static void ListSort(List<Map<String, Object>> list) { ...

    Java list集合去重排序

    List集合根据时间排序(升序)

        /**
         * 根据时间排序倒序(其他排序如根据id排序也类似)
         * @param list
         */
        private static void ListSort(List<Map<String, Object>> list) {
            //用Collections这个工具类传list进来排序
            Collections.sort(list, new Comparator<Map<String, Object>>() {
                @Override
                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                    try {
                        Date dt1 = format.parse(o1.get("date").toString());
                        Date dt2 = format.parse(o2.get("date").toString());
                        if (dt1.getTime() < dt2.getTime()) {
                            return 1;//大的放前面
                        }else {
                            return -1;
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    return 0;
                }
            });
        }
    

    List集合使用stream流来去重,并且排序,留下最大时间的对象

     /*
        * stream去重 升序
        * */
        public List removeDuplicate(List<Map<String,Object>> list)  {
            List<Map<String,Object>> es = new ArrayList<>();//创建一个新的集合
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");//格式化时间
            Date maxTime = null;//最大时间
            Map<String,Object> item = new HashMap<>();//新建一个map
            Map<String, List<Map<String, Object>>> name= list.stream()
                    .collect(Collectors.groupingBy(e -> e.get("name") + ""));//根据name分组
            for (Map.Entry<String,List<Map<String,Object>>> entry : name.entrySet()){//遍历map集合
                List<Map<String, Object>> entryValue = entry.getValue();//将其他的map对象装入集合
                if (entryValue.size()>0){
                    item=entryValue.get(0);//将第一个对象作为最大时间的对象
                    try {
                        maxTime = format.parse(item.get("date").toString());//获取最大时间
                        for (Map<String,Object> map:entryValue){//循环查找法,查找最大值
                            Date date =  format.parse(map.get("date").toString());
                            if (date.getTime()>maxTime.getTime()){//比较大小
                                item = map;//将最大的值的map赋值给item对象
                            }
                        }
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
                es.add(item);//查找到的最大值插入新的list集合
            }
            return es;
    
        }
    

    欢迎在下方评论区留言交流。

    展开全文
  • 随机数去重排序

    2021-05-26 02:39:15
    /*创建者:鲁班大师程序功能:题目描明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用 ...请你协助明明完成“去重”与“排序”的工作。输入有2行,第1行为1个正整数,表示所生成的随机数...

    /*

    创建者:鲁班大师

    程序功能:

    题目描

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

    输入

    有2行,第1行为1个正整数,表示所生成的随机数的个数:

    N

    第2行有N个用空格隔开的正整数,为所产生的随机数。

    输出

    也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

    样例输入

    10

    20 40 32 67 40 20 89 300 400 15

    样例输出

    8

    15 20 32 40 67 89 300 400

    创建时间:年月日

    */

    #include

    #include

    #include

    #define N 100

    int main(){

    srand((unsigned int)time(NULL));//产生随机种子

    int a[N];

    int n;

    int i;

    scanf("%d",&n);

    for(i=0;i

    a[i]=rand()%1000+1;

    }

    int j;

    int temp;

    for(i=1;i

    for(j=0;j

    if(a[j]>a[j+1]){

    temp=a[j];

    a[j]=a[j+1];

    a[j+1]=temp;

    }

    }

    }

    int k=0;

    for(i=0;i

    for(j=0;j

    if(a[i]==a[j]){

    a[j]==EOF;//标记重复的数

    }

    }

    }

    int b[N];

    k=0;

    for(i=0;i

    if(a[i]!=EOF){//将标记的数除去,存放在数组b中

    b[k]=a[i];

    k++;

    }

    }

    b[k]=0;//使数组b以0结束

    for(i=0;b[i]!=0;i++){//遍历数组b

    printf("%5d",b[i]);

    }

    }

    展开全文
  • python之字符串去重排序 描述:输入一个非空字符串,去除重复字符后,从小到大排序输出为一个新字符串。 输入:一个非空字符串 输出:去重排序的字符串 代码详情 str1=input() s=set(str1) s=list(s) s.sort(reverse...
  • Mysql DISTINCT去重 排序

    2021-08-26 17:31:07
    8.0环境不方便groupby的情况下,distinct 排好序的临时表发现乱序,distinct会默认取表的第一列去正序排序,在临时表第一列改成序号(@i:= @i+1)解决
  • 一、sql去重排序:需求,对数据库数据按mfrom去重(显示最新数据),并对去重后的数据按mcreated_time进行倒序排列:sql语句为:(1)SELECT * FROM messages m WHERE NOT EXISTS (SELECT * FROM messages WHERE m.mfrom ...
  • 去重排序(从小到大排序) let arr=[1,2,3,3,3,3,4,4,5,5,9,9]; function superSort(){ return [...new Set(arr)].sort(function(a,b){ return a-b; }) } console.log(superSort(arr)); 去重排序(从大到小排序) ...
  • 参考代码如下:#include#include#include#includeintmain(void){intN;scanf("%d",&N);intarr[N];inti;for(i=0;i{scanf("%d",&...}//先将数组元素进行排序,方便去重intj;inttmp;for(i=0;i{for(j=i;...
  • 1 数组合并去重排序 var a = [1, 2, 5]; var b = [1, 3, 4]; let res = [...a, ...b]; res = res.filter((item, index, res) => { return res.indexOf(item) == index; }) res.sort((a,b)=>{ return a
  • 题目编写一个函数,将两个已排序数组合并为一个数组。数组只包含整数。此外,必须对最终结果进行排序,不得有任何重复。测试用例import org.junit.Test;import static org.junit.Assert.assertArrayEquals;public ...
  • 目录 1.问题描述 2.问题求解及代码实现 1.问题描述 老师给了小乐乐一个正整数序列,要求小乐乐把这...输出一行,为去重排序后的序列,每个数后面有一个空格。 题目链接小乐乐与序列_牛客题霸_牛客网 2.问题求解
  • 我们在用EXCEL办公的时候,经常会遇到去重和排序的问题,其实无论用哪个软件都经常会遇到去重和排序问题,那么你知道用Python如何实现对字符串的去重排序吗?往下看,就是这么简单!案例s = "ajldjlajfdljfddd",...
  • python如何读取TXT文本数据到数组(实现去重排序)本文实例讲述了python读取TXT到数组及列表去重后按原来顺序排序的方法。分享给大家供大家参考。具体如下:########################################################...
  • 使用Collections工具类进行排序Collections支付三种排序A.sort()默认排序(从小到大)B.reverse()倒序(从大到小)C.shuffle()随机排序List排序大体上分为如下两类:1、List 对Integer、String等类型的List排序2、List ...
  • C++ 字符串去重排序实例代码入一个字符串,去掉重复出现的字符,并把剩余的字符串排序输出。实现代码:#include #include using namespace std;void sort(string s){char tmp[100];int len=s.size();int count=0,i,j...
  • 例如:已知某个文件内包含若干个电话号码,要求统计不同的号码的个数,甚至在O(n)时间复杂度内对这些号码进行排序。位图法需要的空间很少(依赖于数据分布,但是我们也可以通过一些放啊发对数据进行处理,使得数据变...
  • 或者如何快速地对这组数据排重后排序?让我们先算算 20 亿个整数会占用多大的内存空间,Java 的 int 类型占用 4 个字节,那么 20 亿 * 4 再换算成 G 大约是 7.5G,大于题目中 4G 内存的限制,无法一次性地放到内存中...
  • 题目:给你一个字符串 s ,请你去除字符串... } //完成去重 //接下来排序 Iterator<String> it = set.iterator(); while (it.hasNext()) { s1=s1+it.next(); } return s1; }else{ return "字符串为空,无须去重"; } } }
  • 第一种,使用mongoTemplate.findDistinct去重,不支持排序,即使你的query条件带sort排序方法。mongoTemplate.findDistinct去重,会使排序失效。优点:查询效率高 缺点:只返回单一字段。不知多字段返回。不能使用...
  • 排序工作原理: 桶中(对应数组)存放元素出现的次数, 将待排序的元素作为数组的下标, 从小到大考察每个自然数,如果出现次数为0,则该自然数不是待排序元素。出现几次输出几次。 代码实现: #include &...
  • 字符串去重排序

    2021-03-25 10:32:38
    随手记录 public static void main(String[] args)...//升序排序 //Collections.reverse(list);//降序排序 System.out.println("输出正序结果"); for (int i = 0; i 0; i--) { System.out.println(result.get(i)); } }
  • # series中不用使用subset方法 二维,对多个列进行去重 当同时满足两个列才会去重 基本语法 #sort_values(by='') 对分组后的数据进行排序 print(data.drop_duplicates(subset='dishes_name').sort_values() print...
  • 数组扁平化 flat(x) x表示想要拉平的层数,默认为1。 Infinity任意层数 let arr=[1,[1,2,3,[1,2,3,4,[4,5,6,[6,7,8]]]]] console.log(...new Set(arr.flat(Infinity).sort((a,b)=>{a-b})))
  • 分组去重排序之后数据 在ORDER BY前添加GROUP BY aaci.component_id ,使用 component_id 进行排序 SELECT aasi.wt_id as turbineId, aafi.function_id as functionId, aafi.desc as `desc`, aaci.component_id ...
  • 直接上代码 #include int main() { int a[1000]={0},cpy[1000]={0},flag,temp; int N,n,j,k,i,num=0; //产生随机数的个数 scanf("%d",&N); //第2行有N个用空格隔开的正整数,为所... //输出去重排序后的数组 for(n=0;n

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,362
精华内容 44,944
关键字:

去重排序