一、找出1到n中缺少的数
var str=‘1 5 7 8 9 10 11‘; var strArr=str.split(‘ ‘); for (var i = 0; i < strArr.length; i++) { strArr[i] = parseInt(strArr[i]); } //对数组进行升序排序 strArr.sort(function(num1, num2) { return num1 - num2; }); var result=[]; var temp=1; //temp用来控制数值和其对应下标的差值 for (i = 0; i < strArr.length; i++) { var x1 = strArr[i] - i; //x1表示当前数组中数值和下标的差值 var x2 = i+temp; //因为正常情况下,数值和下标的值差1,所以要对x1加1,才是最终的结果 while ( x1 != temp) { result.push(x2); x2++; //在差值增加的情况下,缺失的值也应该加1 temp++; //如果差值不是1,那么应该给temp加1,看差值是否是2,以此类推 } } console.log(result);
二、开关控制灯泡问题
题目:
在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮。 现在问你,使用这n组开关,最多能够使得多少个灯泡点亮呢?
输入 :第一行一个n,表示有n组开关。 接下来n行,每行第一个整数为k,表示这个开关控制k个灯泡,接下来k个整数,表示控制的灯泡序号。 满足: 1<=n<=1000 ,1<=k<=1000 ,序号是在int范围内正整数。
输出 :输出最多多少个灯泡点亮。
let n=readInt(); let res=[]; while(n--){ let k=readInt(); while(k--){ let num=readInt(); res.push(num); } } //ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 //Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。 res=[...new Set(res)]; print(res.length);
原文地址:https://www.cnblogs.com/lmjZone/p/8747994.html
时间: 2024-10-09 10:26:16