JavaScript解答罗志祥多人运动题
今天看到一题罗志祥的多人运动笑死了,赶紧来解答一下子~
点上面链接可以看原题,里面还有C++的解法~(但我tmd看不懂)
顺便推荐star一下LeetCode题解~
我把题目复制到这里来~
已知小猪每晚都要约好几个女生到酒店房间。每个女生 i 与小猪约好的时间由 [si , ei]表示,其中 si 表示女生进入房间的时间, ei 表示女生离开房间的时间。由于小猪心胸开阔,思想开明,不同女生可以同时存在于小猪的房间。请计算出小猪最多同时在做几人的「多人运动」。
**Input : [ [0 , 30] , [5 , 10], [15, 20] ] **
OutPut :最多同时有两个女生的「三人运动」
一句话总结
求出每个时间刻度有几人在场即可。
过程
前情提要
今天突然想看一下three.js,但是跟着文档走没遇到什么问题,所以就来做题吧~
重点
话不多说(已经说了很多了)直接看代码吧~
注释写的超详细~
// 首先输入的是一个二维数组
let input = [[0, 30], [5, 10], [15, 20]];
function getPigTime(input) {// 新数组,用来记录每个人在猪猪房里的每个时间点let newArr = new Array();// 遍历inputinput.forEach((item) => {// 遍历input里每个妹子的时间for (let i = item[0]; i <= item[1]; i++) {// 每个存在的时间点,人物数量+1,每个尚未计算的时间点,赋给新数组一个初始值1newArr[i] ? (newArr[i]++) : (newArr[i] = 1);}});// 新数组中最大的数字就是同一时间多人在线的人物数量。注意这里小猪不算人return Math.max(...newArr);
}
console.log(getPigTime(input));
尾巴
- 生成item[0]到item[1]的连续整数数组:
input.forEach( (item)=> {// 转换成数组newArr.push(Array.from(new Array(item[1] + 1).keys()).slice(item[0]));/* 解释上面的狗屎代码:new Array(item[1]+1).keys()是一个array iterator外面套上Array.from()就生成一个item[1]个元素的从0到item[1]的数组再接上slice(item[0])切掉从0到item[0]的数字后就剩下从item[0]开始到item[1]结束的数组了然后把这个数组push到newArr里面,以便forEach结束后继续用...*/
}
我发现复杂度忘得差不多了,明天看看吧。
话说上面的代码第一个循环参考了大佬的,我自己写的没这么简化~
JavaScript解答罗志祥多人运动题相关推荐
- 万人千题第一阶段报告【待继续总结】
学习内容概况 目的:找编程和做题的手感 具体训练内容:万人千题第一阶段题库(思维导图),同时还有一些之前做过的题 练习后总结 具体细节之后补充为文字版,概况思维导图如下: 编程细节 位运算使用技巧 d ...
- 使用JavaScript解答2018第九届蓝桥杯C/C++省赛A组试题
大三时参加过第七届蓝桥杯个人赛及团队赛,转眼已经两年,最近看了看第九届蓝桥杯试题,打算用JavaScript实现一下. 题目1 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ...
- Codeforces上通过数超过5W人的题
Codeforces上通过数超过5W人的题 共32题:1000分4题,800分28题. 编号 题号 题名 分数 通过数 1 4A Watermelon 800 x193501 2 71A Way To ...
- 【论文笔记】基于强化学习的机器人手臂仿人运动规划方法
文章目录 摘要 关键词 0 引言 学者研究 阶段一:采集运动数据,分析运动过程特征 阶段二:设计仿人变量.建立仿人标准和约束 阶段三:用智能算法提升仿人运动机器人性能 本文工作 1 问题描述及方法架构 ...
- 【万人千题】誓要成为刷题界的卷王王中王
<暗里刷题>(改编自<暗里着迷>) 兄弟们,由于需要,得开始接触二次元了,明年想办法进驻b站.承诺会更新算法系列视频教程,十年内保证更新完所有算法视频.有兴趣的可以提前关注 ...
- 想参加多人运动?并行流(ParallelStream)模式教你成为时间管理大师
目的 提高程序运行效率, 减少响应时间或者增加吞吐量 例子代码 最近罗*祥, 福报厂P12 jf 引起了大家的关注, 二位都是因为私人生活问题, 搞的微博程序员天天加班加服务器, 让我等吃了一个又一个 ...
- 万人千题 | 九日集训 | 英雄算法联盟合伙人 | 三年之约 | B站直播早起粉丝团
图中红色字为动态数字,会随时修改 文章目录 一.万人千题 1.简介 2.详述 二.九日集训 1.简介 2.参与人群 2.如何参与 3.集训周期 4.集训内容 5.如何参加 三.英雄算法联盟合伙人 1. ...
- 万人千题打卡第六期——习题题解
描述: 给定一个整数,写一个函数来判断它是否是 3 的幂次方.如果是,返回 true :否则,返回 false . 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x 来源:力扣(L ...
- JavaScript/jQuery考试中的编译题
学校的一次JavaScript/jQuery考试中的编译题 以下是我给出的答案: 1.用jQuery编程实现获取选中复选框值的函数abc. <body> <input type=&q ...
最新文章
- 普通粒子群算法和优化方法
- Linux4.4 TCP源码分析
- 计算机二级试题库office选择题,全国计算机二级MSoffice选择题题库2017
- 请键入 net helpmsg 3534 以获得更多的帮助。_相遇不易,请珍惜
- 推荐几个练习听力不错的国外网站
- mysql数据字典生成器_「python技术」列表推导、生成器表达式和字典推导的差异及其示例
- (转)OGNL与值栈
- 计算机网络拓扑结构方案总结,计算机网络拓扑结构总结
- python判断整数是否对称_刷题系列 - Python判断是否镜像对称二叉树
- 常用组合逻辑电路及MSI组合电路模块的应用—上篇
- Java开发实战经典【Java基础】
- Office Tool Plus v8.2.4.0 安装Office组件小工具
- uni-app 简介
- Matlab求加权平均数,MATLAB Accumarray加权平均值
- html页面 关键字高亮,HTML高亮关键字的完美解决方案
- 高中英语语法(001)-虚拟语气
- 2019年注册测绘师 测绘管理与法律法规 精讲班视频课程
- 从0开始的TypeScriptの八:类
- 自动驾驶仿真实验流程--以PanoSim仿真软件为例
- 人成长中必须知道的20个故事