跳水板
时间:2022-07-24
本文章向大家介绍跳水板,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
跳水板
你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter
,长度较长的木板长度为longer
。你必须正好使用k
块木板。编写一个方法,生成跳水板所有可能的长度。
返回的长度需要从小到大排列。
示例
输入:
shorter = 1
longer = 2
k = 3
输出: {3,4,5,6}
题解
/**
* @param {number} shorter
* @param {number} longer
* @param {number} k
* @return {number[]}
*/
var divingBoard = function(shorter, longer, k) {
if(k === 0) return [];
if(shorter === longer) return [ longer * k ];
var target = [];
for(let i=0; i<=k; ++i) target.push( shorter*(k-i) + longer*i);
return target;
};
思路
按照本题要求,必须使用k
块木板,那么只需要维护一个长度为k
的定长滑动窗口即可,首先滑动窗口中全部放置短的木板,之后将窗口滑动,也就是依次将短的木板移出然后将长的木板亦如,考虑到两个边界情况,当k
的长度为0
时只需要返回空数组即可,当长木板长度等于端木板长度时,只有一种情况即木板长度乘模板数量。首先处理边界情况,k === 0
时直接返回空数组,在shorter === longer
情况下返回只有longer * k
一个值的数组,在处理滑动窗口的过程中,当需要的木板数量为k
时会生成k+1
中情况,也就是需要k+1
次循环,然后以i
为分割点,因为其是从小到大排列,所以首先将窗口中装满shorter
长度的木板,再依次滑动计算即可。
每日一题
https://github.com/WindrunnerMax/EveryDay
题源
https://leetcode-cn.com/problems/diving-board-lcci/
- Extjs 项目中常用的小技巧,也许你用得着(5)--设置 Ext.data.Store 传参的请求方式
- WPF备忘录(5)怎样修改模板中的控件
- Linux 系统与数据库安全
- 使用委托实现同步回调与异步回调
- Application Firewall Design
- Extjs 项目中常用的小技巧,也许你用得着(4)---Extjs 中的cookie设置
- C#基础知识回顾--串行化与反串行化
- Shell实用实例参考
- 数据库记录安全解决方案
- 多客服功能终于也向所有微信认证的订阅号开放了
- WPF备忘录(4)打个勾画个叉娱乐下
- Linux Token Auth 一次性密码认证
- Oracle Hints - 先知的提示
- 依赖注入(IOC)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 温故而知新:MySQL存储引擎入门介绍
- 终于明白 Java 为什么要加 final 关键字了!
- 学习git这一篇就够了!!!
- 如何在nodejs中实现兄弟进程通信
- Python异常处理
- Python装饰器实现函数动态类型检查
- 如何自动填充SQL语句中的公共字段
- 面试官喜欢问的Java编译期与运行期问题总结全了
- 面试5年25K程序员回答不出来为什么Java的main方法必须是public static void?
- Python装饰器
- 3分钟短文:十年窖藏,Laravel告诉你表单验证的“正确姿势”
- 面试官:说说SpringBoot中Spring容器的启动过程
- Python IO
- Python解析式
- 面试官:Tomcat 的调优怎么做?你的最佳实践有哪些?