首页 > 试题广场 >

明明的随机数

[编程题]明明的随机数
  • 热度指数:1547881 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。

数据范围: ,输入的数字大小满足

输入描述:
第一行先输入随机整数的个数 N 。
接下来的 N 行每行输入一个整数,代表明明生成的随机数。
具体格式可以参考下面的"示例"。


输出描述:

输出多行,表示输入数据处理后的结果

示例1

输入

3
2
2
1

输出

1
2

说明

输入解释:
第一个数字是3,也即这个小样例的N=3,说明用计算机生成了3个1到500之间的随机整数,接下来每行一个随机数字,共3行,也即这3个随机数字为:
2
2
1
所以样例的输出为:
1
2       
[...new Set(link)].sort((a,b)=>a-b).forEach(item=>{
console.log(item)
})
编辑于 2024-04-02 12:23:14 回复(0)
await readline()
let arr = [];
while(line = await readline()){
        arr.push(+line)
    }
let a = Array.from(new Set(arr)).sort((a, b) => { return a - b;})
     a.forEach(item => {
        console.log(item)
     })

编辑于 2024-03-04 15:04:45 回复(0)
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    let allNum = [];
    while ((line = Number(await readline()))) {
        allNum.push(line);
    }
    allNum.shift();
    let noReapArr = new Set(allNum);
    let res = [...noReapArr].sort();
    res.forEach((e) => {
        return console.log(e);
    });
})();


为什么我这sort函数中不写参数通过不了呢,默认就是升序呀
发表于 2023-10-21 15:09:06 回复(1)
为啥始终只有一个用力能过呢?
void (async function () {
  const set = new Set();
  let nums = -1;
  rl.on('line', line => {
    if (nums === -1) {
      nums = line;
    } else {
      set.add(line);
    }
  });
  rl.on('close', () => {
    if (nums > 0) {
      let sorted = Array.from(set).sort((a, b) => a - b);
      sorted.forEach(el => console.log(el));
    }
  });
})();

发表于 2023-03-25 18:44:45 回复(0)
const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let rows = []
let k = -1
let n = ''
rl.on('line', function (line) {
    if (k === -1) {
        n = line
        k++
    } else {
        rows.push(line)
        k++
        if ( n == k) {
            let sort = [...new Set(rows.sort((a,b) => a-b))]
            sort.forEach(item => {
                console.log(item)
            })
        }    
    }
    
    
});
发表于 2022-05-15 22:26:44 回复(0)
let readline = require("readline");
let r = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
// 手写一个堆
class Heap {
  constructor() {
    this.data = [];
    this.cnt = 0;
  }
// 指定大顶堆 的比较方式
  compare(a, b) {
    return this.data[a] > this.data[b];
  }
  swap(a, b) {
    let tmp = this.data[a];
    this.data[a] = this.data[b];
    this.data[b] = tmp;
  }
// 向上调整
  push(x) {
    let ind = this.cnt;
    this.data[this.cnt++] = x;
    while (ind && this.compare(ind - 1 >> 1, ind)) {
      this.swap(ind - 1 >> 1, ind);
      ind = (ind - 1) >> 1;
    }
  }
// 向下调整
  pop() {
      let top = this.data[0]
      this.data[0] = this.data.pop()
      this.cnt--
      let n = this.cnt-1,ind = 0,tmp = ind
      while(ind*2+1<=n){
          if(this.compare(ind,ind*2+1)) tmp = ind*2+1
          if(ind*2+2<=n && this.compare(tmp,ind*2+2)) tmp = ind*2+2
          if(ind==tmp) break
          this.swap(ind,tmp)
          ind = tmp
      }
      return top
  }
    size(){
        return this.cnt
    }
}
let arr = [];
r.on("line", (line) => {
  arr.push(Number(line));
  if (arr.length > arr[0]) {
    let h = new Heap()
    let ret = []
    for(let i=1;i<arr.length;i++) h.push(arr[i])
    while(h.size()) ret.push(h.pop())
    let m={}
    for(let x of ret){
        if(x in m) continue
        m[x] = 1
        console.log(x)
    }
    
    
  }
});

发表于 2022-04-20 10:55:35 回复(0)
const readline = require('readline')
var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})
var result = [] 
var arr = []
var lineNum = 0
var num = 0
rl.on('line', (line) => {
    var flag = true
    //     此时重置
    if (num == lineNum) {
        num = 0
        lineNum = parseInt(line)
        if(arr.length > 0){
            result.push(arr)
            arr = []
        }
        flag = false
    }
    //     此时将数据push进数组
    if ((num < lineNum) && flag) {
        num++
        if (arr.indexOf(line) < 0) {
            arr.push(line)
        }
    }
})
rl.on('close', () => {
    result.push(arr)
    result.forEach((res)=>{
        res.sort(sortNumber)
        res.forEach((val) => {
            console.log(parseInt(val))
        })
    })
})
function sortNumber(a, b) {
    return a - b
}

发表于 2021-09-03 21:37:16 回复(0)
const readline = require('readline')
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
})
var inputArr = []
rl.on('line', function (input) {
    inputArr.push(input)
    var len = +inputArr[0]
    if (inputArr.length === len + 1) {
        var part = inputArr.slice(1, inputArr.length + 1)
        // 去重
        var res = part.reduce( (pre, cur) => {
            if (!pre.includes(cur)) {
                pre.push(cur)
            }
            return pre
        }, [])
        // 升序,换行输出
        var result = res.sort( (a,b) => a - b).join('\n')
        console.log(result)
        // 清空上一个列子内容
        inputArr = []
        res = []
    }
});

发表于 2021-08-23 23:55:59 回复(0)
// 读取每次的输入
while(readNum = readline()){
    var arr=[];
    for(var i=0;i<readNum;i++){
        arr.push(parseInt(readline()))
    }
//     去重
    arr = [...new Set(arr)];
//     排序
    arr.sort((a,b)=>a-b);
//     换行打印
    console.log(arr.join('\n'))
}
发表于 2021-06-27 15:01:33 回复(0)
 const readline = require('readline');  
const rl = readline.createInterface({  
        input: process.stdin,  
        output: process.stdout  
    });  
    var inputArr = [];  
    var newinputArr = []; 
    rl.on('line', function (input) {  
        inputArr.push(input) 
    });      
    rl.on('close', function() {   
        test()
        process.exit(0);  
    });
function test(){
    dosome(inputArr)
    newinputArr.forEach((item,index)=>{ 
    console.log(item)
    })
}
function dosome(arr){
    let num = 0
    let index = 0
   let singleArr = []
    let addArr = []
    for(let i=0;i<inputArr.length;i++){
        if(num==0||(num+1) == i){ 
            num = parseInt(inputArr[i])+i
            index = i
        }else{
            if(i == index+1){
                singleArr = inputArr.slice(index+1,num+1)
                singleArr = Array.from(new Set(singleArr))
                   singleArr.sort(function(a,b){
                        return a-b
                    })
               newinputArr=newinputArr.concat(singleArr)
            }
        } 
      }
}
发表于 2021-06-17 16:35:32 回复(0)
let line = readline()

while(line) {
    let arr = [];
    while(line-- > 0) {
        arr.push(parseInt(readline()))
    }
    
    let set = new Set(arr);
    arr = Array.from(set).sort((a,b) => a-b);
    
    arr.forEach(item => console.log(item))
    
    line = readline();
}


编辑于 2021-06-09 22:39:51 回复(0)
记录,js 数组的去重和排序问题

var readline = require('readline')
var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})
var inputY = 0
let params = []
let object = {}

rl.on('line', (line) => {
    if(inputY == 0){
        inputY = parseInt(line)
    }else{
        params.push(line)
        if(params.length == inputY) {
            let list_1 = Array.from(new Set(params))
            let list_2 = list_1.sort((a,b) => {return a - b})
            for(let a of list_2){
                console.log(a)
            }
            inputY = 0
            params = []
        }
    }
})

发表于 2021-05-24 19:24:31 回复(0)
想知道大佬们怎么判断用户停止输入的...
使用语言:JavaScript
编辑于 2021-05-01 23:37:24 回复(0)

while(len = parseInt(readline(), 10)) {
    const buffer = Array(len).fill(0).map(() => parseInt(readline(), 10));
    console.log([...new Set(buffer.sort((a, b) => a - b))].join('\n'))
}

发表于 2021-03-28 22:33:55 回复(0)
while(line=readline()){
    var num=parseInt(line)
    var arr=[]
    while(num-->0){
        arr.push(parseInt(readline()))
    }
    var set=new Set(arr)
    arr=Array.from(set).sort((a,b)=>a-b)
     for(var i=0;i<arr.length;i++){
         console.log(arr[i])
     }
}

发表于 2021-01-25 16:30:56 回复(0)
// 自测没问题,保存并提交就出问题了,牛客你为什么这么烂!!!!
const listNum = [];
var data = '';
var size = 0;
while(data = readline()){
  if (size === 0) {
    size = data
  } else {
    size--;
    listNum.push(data);
  }
}

const sortList = listNum.sort((a, b) => a - b);

console.log(sortList
  .filter((item, index) => item !== sortList[index + 1])
  .join('\n'))
// 自测没问题,保存并提交就出问题了,牛客你为什么这么烂!!!!

编辑于 2021-01-19 21:49:03 回复(0)
自测全部通过,提交就不行,你这个后台测试初始化到底是怎么做的,***巨迷惑
var flag = 0
var result = new Array();
var count =0
while (line = readline()){
    if(flag==0){
        count=parseInt(line)       
    }else{
        if(!result.includes(parseInt(line))){
            result.push(parseInt(line))
        }
    }
    flag++
    if(flag-1==count){
        flag=0
    }   
}
result.sort(function(a,b){return a-b})
result.forEach((item)=>{
    console.log(item)
})


编辑于 2020-12-08 15:17:17 回复(0)
const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

let flag = true;
let datas = new Array();
let len = 0;
rl.on("line", function (line) {
    if (flag === true) {
        flag = false;
        datas = new Array();
        len = parseInt(line);
    } else {
        let d = parseInt(line);
        datas.push(d);
        if (datas.length === len) {
            datas = Array.from(new Set(datas));
            console.log(datas.sort((a, b) => a -b).join("\n"))
            flag = true;
        }
    }
})

发表于 2020-12-06 15:46:36 回复(0)
const readline = require('readline')
const read = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})
let dataSet = null
let startFlag = true
read.on('line', (line) =>{
    // 读到起始位置,设置count数
    if (startFlag === true) {
        startFlag = parseInt(line)
        dataSet = new Set()
    } else {
        dataSet.add(line)
        startFlag--
        if (startFlag === 0) {
            // 读到最后一个
            startFlag = true
            Array.from(dataSet).sort((that, next) => that - next).forEach(item => console.log(item))
            dataSet = null
        }
    }
})


编辑于 2020-11-23 00:54:15 回复(0)
这道题表诉及其不清晰
一开始我以为是把所有组的数据放一起排序去重(注释掉的部分代码就是这个意思),咋搞都是自测没问题,提交一直不对
其实他的要求是每一组都单独排序和去重,真是郁闷死了qaq

// var readStr=1;
// var num=0;
// var arr=[];
// while(readStr){
//     readStr = parseInt(readline())
//     if(num == 0){
//         num = readStr;
//     }else{
//         num--;
//         arr.push(readStr)
//     }
// }
// arr.sort(function(a,b){return a-b});
// for(var i=0;i<arr.length;i++){
//     if(arr[i] == arr[i-1]){
//         arr.splice(i,1)
//         i--
//     }
// }
// console.log(arr.join('\n'))


// 正解如下
while(readNum = readline()){
    var arr=[];
    for(var i=0;i<readNum;i++){
        arr.push(parseInt(readline()))
    }
    arr.sort(function(a,b){return a-b});
    for(var i=0;i<arr.length;i++){
        if(arr[i] == arr[i-1]){
            arr.splice(i,1)
            i--
        }
    }
    console.log(arr.join('\n'))
}


发表于 2020-11-13 00:52:48 回复(2)

问题信息

难度:
50条回答 286020浏览

热门推荐

通过挑战的用户

查看代码