js刷题-1明明的随机数

355 阅读1分钟

www.nowcoder.com/practice/32…

解法1:

var count,arr=[]
while(count=readline()){
    arr.push(parseInt(count))
}
var temp = arr[0],arr1=[]
for(let i = 0;i<arr.length;i++){
        var arrTemp = new Array()
    for(let j = 0;j<temp;j++){
     // j是下标指针
        arrTemp.push(arr[j+1])
    }
    arr1.push(arrTemp)
    arr.splice(0,temp+1)
    temp=parseInt(arr[0])

}
function delReAndRange(arr){
 let reArr=[]
 bbq:
 for(let m = 0;m<arr.length;m++){
  for(let n = 0;n<reArr.length;n++){
   if(reArr[n]>arr[m]){
    reArr.splice(n,0,arr[m])
    continue bbq
   }else if(reArr[n]===arr[m]){
    continue bbq
   }
  }
  reArr.push(arr[m])
 }
 return reArr
}
var result = [];
for(let i = 0;i<arr1.length;i++){
    var arr2= delReAndRange(arr1[i])
    for(let j = 0;j<arr2.length;j++){
        console.log(arr2[j])
    }
}

解法2:

var res = []
var isLineCount = true//标识符
var lineSize = 0, lineIdx = 0, line//长度,下标和入参
while(line=readline()){//拿到一行入参
    line = parseInt(line)//将string转换为number
    if (isLineCount) {
        lineSize = line
        lineIdx = 0
        isLineCount = false
        res=[]
    } else {
        if (!res.includes(line)) {
            res.push(line)
        }
        lineIdx++;
    }
    if (lineIdx == lineSize) {
        isLineCount = true
        res.sort((a, b) => a - b);
for (var i = 0; i < res.length; i++) {
    console.log(res[i])
}
    }
}

显然第二种写法比第一种高明。