知识点:数组

描述

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

注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。当没有新的输入时,说明输入结束。

输入描述

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

输出描述

返回多行,处理后的结果

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;int main() {int count, i = 0;while (cin >> count) {vector<int> tmp(count);i = 0;//步骤1:输入while (count) {cin >> tmp[i];i++; count--;}//步骤2:排序sort(tmp.begin(), tmp.end());    //步骤3:去重并输出int m = 0, n = 0;cout << tmp[0] << endl;while (n < tmp.size()) {if (tmp[m] != tmp[n]) {m = n;cout << tmp[m] << endl;}n++;}}return 0;
}

输入

每一组小样例的第一个数字代表样例个数,外层while循环首先获得本组样例的大小,并赋值给count变量。

接着内层的while循环开始读入样例数据至tmp数组。

排序

先排序或者先去重都可以,这里选择先排序。

sort函数需要包含头文件algorithm

去重

检测到不相等的元素就移动左指针m的位置并输出元素。

注意右指针n不要越界。

结果

上图是在VS上运行的效果,数据是逐个手动输入的。可以看到和牛客网上的运行还是存在差别的,这是因为程序的逻辑是每处理完一组样例就输出结果。如果直接copy示例到控制台,只会输出最后一组的结果,这是为什么咱也不知道,可能和缓冲区有关吧。

牛客网上直接抹掉了输入的数据,结果是正确的。

C++:数组的输入、排序与去重操作相关推荐

  1. python在txt中的替换数据清洗_数据清洗过程中常见的排序和去重操作

    数据操作中排序和去重是比较常见的数据操作,本专题对排序和去重做专门介绍,并且给出一种不常用却比较有启发意义的示例:多列无序去重 目 录 1 排序 1.1 sort 单列排序返回值 1.2 order ...

  2. 实验七:掌握基本的MapReduce编程方法 (JAVA+Python实现)(编程实现文件合并和去重操作,编写程序实现对输入文件的排序,对给定的表格进行信息挖掘)

    一.实验目的: 1. 理解MapReduce的工作机制: 2. 掌握基本的MapReduce编程方法 3. 重点理解map过程,shuffle过程和reduce过程 二.实验环境: Hadoop+Ec ...

  3. 好程序员web前端分享数组及排序、去重和随机点名

    好程序员web前端分享数组及排序.去重和随机点名,栈堆结构:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除. 栈:存放的是路径:容量有限(在一开始被定义之 ...

  4. C语言学习之有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

    有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中 #include <stdio.h> void main(){int a[11]={25,32,65,74,84,9 ...

  5. Java练习——输入n个数,存入数组,进行排序输出

    题目:输入n个数,存入数组,进行排序输出 package paixu; import java.util.Scanner; public class paixu {public static void ...

  6. JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法

    JS获取input框用户输入信息作为数组存储传输给后台数据库操作存储方法 获取input框用户输入信息数组存储 var datas = {Id: idData.id,OrderDetailCode: ...

  7. java 8 lambda表达式list操作分组、过滤、求和、最值、排序、去重

    java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组.过滤.求和.最值.排序.去重.跟之前的传统写法对比,能少写不少代码. 新建实体类 package com.vvvtimes ...

  8. jquery 里面对数组去重操作-unique

    js: [javascript] view plaincopy print? var yearArray = new Array(2009, 2009, 2010, 2010, 2009, 2010) ...

  9. arr数组怎么取值_JS 面试之数组的几个不 low 操作

    前言 本文主要从应用来讲数组api的一些骚操作,如一行代码扁平化n维数组.数组去重.求数组最大值.数组求和.排序.对象和数组的转化等. 上面这些应用场景你可以用一行代码实现吗? 1.扁平化n维数组 1 ...

  10. 利用集合对数据进行去重操作

             我们平时处理数据时,会发现里面有很多重复的数据,这时就需要对数据进行去重操作,那么在java中我们可以用到集合进行这样的操作. 我们就以具体的需求为例:               ...

最新文章

  1. C#/VB.NET 给Word文档添加/撤销书签
  2. 再谈无边框窗体的操作
  3. nyoj1307Linux的文件权限对不对
  4. 浅析在公众号中使用弛声sdk为什么上传解析慢
  5. QStyleOptionGraphicsItem实现自绘按钮悬浮按下状态
  6. mysql 性能问题_mysql性能问题
  7. springmvc+ztree v3实现类似表单回显功能
  8. 网络基础之网络模型及各分层的设备
  9. MySQL初始化安装部署
  10. 《Windows服务器配置与管理》------磁盘管理
  11. 6 万出头的北京房价,程序员如何靠自己安家?
  12. 用批处理读取特定注册表项的路径值
  13. 区块链java语言,基于Java语言构建区块链(一)—— 基本原型
  14. matlab 均匀设计编程,均匀设计均匀设计表--方开泰.doc
  15. Eplan教程——利用在线帮助系统解读项目检查错误消息
  16. 简易支付系统的架构设计
  17. dw怎么在框架中加入网页_Dreamweaver如何用框架建立网站
  18. 全球及中国医用外科缝合器行业市场需求潜力及投资战略研究报告2022-2028年
  19. 木心先生的句子,不仅美,而且富有深意! ​​​
  20. 学3d建模和计算机编程,超好用的3D建模软件全科普,想要学好建模的你千万别错过!...

热门文章

  1. Linux系统基础入门
  2. sersync+rsync多实例网站数据同步
  3. mysql bit_or() bit_count()函数
  4. Photoshop入门教程十个点
  5. uniq linux下去除重复行命令
  6. switch/case语句中,每个case后{}的意义
  7. 【Java与智能设备】ch0501 Intent的使用
  8. epoll监听文件_linux网络编程之epoll源码重要部分详解
  9. Unity自定义Editor简明教程
  10. app测试用mysql数据库,数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试...