牛客网华为机试训练第3题 明明的随机数

今天花了一下午才把明明的随机数这个搞明白,期间和牛客网的编译器殊死搏斗.一直发现在本地编译器运行成功,但是在牛客上的老师不能通过.整的十分的恼火和焦躁.后来看到了相同的问题,才发现解决之道.

时间限制:1秒 空间限制:32768K 热度指数:222608

本题知识点: 数组

算法知识视频讲解

题目描述

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

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

输入描述:

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

输出描述:

返回多行,处理后的结果

示例1

输入

11
10
20
40
32
67
40
20
89
300
400
15

输出

10
15
20
32
40
67
89
300
400
 1 #include<iostream>
 2 #include<list>
 3 #include <algorithm>
 4 #include <string>
 5 using namespace std;
 6
 7 int main()
 8 {
 9
10     int length;
11     while (cin >> length)    //这是问题的所在,之前写的是  cin >> length;  并不是循环输入的结构.在本地都是输入一个算例检验,而牛客网中的算例是存在多个同时输入的现象,所以要循环判断
12     {              //比如同时输入11 10 20 40 32 67 40 20 89 300 400 15    6 2 4 7 3 2 5 (发现可以直接粘贴到输入黑框中,就算有换行符也可以,因为换行符也算是一个字符)
13         list<int> ilst;
14         int num;
15         for (int i = 0; i < length; i++)
16         {
17             cin >> num;
18             ilst.push_back(num);
19         }
20
21         //使用unique来操作,简单又没有错误
22         ilst.sort();
23         list<int>::iterator end_unique = unique(ilst.begin(), ilst.end());    //!unique只是"删除"相邻的重复元素,其实并没有删除,只是把他们放在容器的最后面,end_unique指向它们中的第一个.
24         ilst.erase(end_unique, ilst.end());
25
26
27         /*
28         //自己写的难懂且不能通过所有算例.(看看这些知识点就好了)
29         itj = ilst.erase(itj);    //!关键所在,erase会返回删除元素后一个的迭代器.
30         //!如果这里不把它赋给itj,会发生迭代器失效的问题,因为指向的元素被删除了.
31
32         ilst.sort();//!sort(ilst.begin(), ilst.end())这种方法不对.因为不支持std::list的,
33                    //!因为list不提供RandomIterator的支持,但list自己提供了sort算法
34         */
35
36         for (list<int>::iterator iti = ilst.begin(); iti != ilst.end(); ++iti)
37         {
38             cout << *iti << endl;
39         }
40     }
41     return 0;
42 }

//上传图像时,可以详细信息->时间倒序.

时间: 2024-10-13 07:14:11

牛客网华为机试训练第3题 明明的随机数的相关文章

牛课网——华为机试练习题

请参考大佬答案: https://blog.csdn.net/FBB360JAVA/ 通过java实现的请参考此博主的程序 以下为python实现的练习实例: 1.给定一个字符串描述的算术表达式,计算粗结果 print(eval(input())) 2.计算字符串最后一个单词的长度,单词以空格隔开 x = input() print(len(x.split()[-1])) 3.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数.不区分大小写. a=i

牛客网编程练习之网易2017校招题:下厨房

水... AC代码: import java.util.Collections; import java.util.HashSet; import java.util.Scanner; import java.util.Set; /** * @author CC11001100 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Set<Strin

华为OJ机试训练(一)

题目1 -- 通过输入英文句子.将每一个单词反过来,标点符号顺序不变.非26个字母且非标点符号的情况就可以标识单词结束. 标点符号包含,.!? 比如输入:Hello, I need an apple. 输出: /** * 华为机试训练1: 通过输入英文句子,将每一个单词反过来.标点符号顺序不变.非26个字母且非标点符号的情况就可以标识单词结束. 标点符号包含,.!? * Hello, I need an apple. * * @author snail * */ public class Mai

【华为机试】找最高分(通过此题熟悉牛客网Node输入输出)

来源:牛客网 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. 输入描述: 输入包括多组测试数据.每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目.学生ID编号从1编到N.第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩接下来又M行,每一行有一个字符C(只取'Q'或'U'),和两个正整数A,B,当C为'Q'的时候

华为机试在线训练(4)

华为机试在线训练:字符串分隔 题目描述 ?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc123456789 输出例子: abc000001234567890000000 代码: 1 import java.util.Arrays; 2 import java.util.Scanner; 3

华为机试—介绍、剖析、建议

一.华为机试介绍 1.大致介绍 时间:120分钟 环境:Visual Studio(去年是vs2005).Visual C++.VC 6.0.Eclipse(Java) 题量:共3题 初级题--60分--3组测试数据 中级题--100分--5组测试数据 高级题--160分--8组测试数据 注:初级题和中级题为必答题,高级题为附加题. 提交次数:每题最多5次 评判方式:按通过测试数据组数给分,每通过一组得20分 2.考试说明 这里有一个老版的机试考试说明,供大家参考: C/C++,JAVA机试流程

[华为机试真题]66.单词搜索

题目 代码 /*--------------------------------------- * 日期:2015-07-06 * 作者:SJF0115 * 题目:WordSearch * 来源:华为机试真题 -----------------------------------------*/ #include <iostream> #include <string> #include <vector> #include <stack> #include

华为机试正式版(西安c/c++/java),今天下午去机试的题目,新鲜出炉了!

以下题目都是回忆的,题目都很简单, 大家有些基础就可以参加!(语言可以是c/c++,也可以是java的) 题目一(60分): 字符串操作, 将小写转换成大写, 将大写转化为小写, 数字的不做转换 例如, 输入:aBcD12 输出:AbCd12 题目二(100分): 将输入的字符串按照规定重新排序,如果字符串长度为奇数, 则中间的字符保持不变, 中间字符左侧降序排列, 右侧字符按照升序排列, 如果字符串长度为偶数,则左半侧字符降序排列,右半侧字符则按照升序排列 例如, 输入:ab5de 输出:ba

牛客网在线判题系统JavaScript(V8)使用

JavaScript作为一种弱类型的编程语言,语法和C/C++.JAVA等存在差别,但是对于大部算法题,不只是C/C++.JAVA,也依然可以使用JavaScript来实现.所以在牛客网中,如果你喜欢JavaScript这门编程语言,同时对数据结构与算法感兴趣,当然可以使用这门语言去刷编程题. 大家有没有跟我碰到过和我类似的情况,在牛客网刷编程题的时候,编译器提供的是Javascript(v8 6.0.0),在线编程部分前端编程还好,只用在题目给出的函数中补充就行.但苦恼的是,我们不知道如何像C