算法题 吹气球 javascript
描述
有n个气球,编号为0
到n-1
,每个气球都有一个分数,存在nums
数组中。每次吹气球i可以得到的分数为 nums[left] * nums[i] * nums[right],left
和right
分别表示i气球相邻的两个气球。当i气球被吹爆后,其左右两气球即为相邻。要求吹爆所有气球,得到最多的分数。
样例
样例1
输入:[4, 1, 5, 10]
输出:270
解释:
nums = [4, 1, 5, 10] 吹爆 1, 得分 4 * 1 * 5 = 20
nums = [4, 5, 10] 吹爆 5, 得分 4 * 5 * 10 = 200
nums = [4, 10] 吹爆 4, 得分 1 * 4 * 10 = 40
nums = [10] 吹爆 10, 得分 1 * 10 * 1 = 10
总得分 20 + 200 + 40 + 10 = 270
样例2
输入:[3,1,5]
输出:35
解释:
nums = [3, 1, 5] 吹爆 1, 得分 3 * 1 * 5 = 15
nums = [3, 5] 吹爆 3, 得分 1 * 3 * 5 = 15
nums = [5] 吹爆 5, 得分 1 * 5 * 1 = 5
总得分 15 + 15 + 5 = 35
const maxCoins = function(nums) {let n = nums.length;let dp = createArrTwo(n+2,n+2);let visit = createArrTwo(n+2,n+2);let arr = new Array(n+2);for(let i = 1;i <= n; ++i){arr[i] = nums[i-1];}arr[0] = 1;arr[n+1] = 1;return reBalloon(arr,dp,visit,1,n);function reBalloon(arr,dp,visit,left,right){//递归函数if(visit[left][right] == 1)return dp[left][right];let sum = 0;for(let x = left;x <= right;++x){let midValue = arr[left - 1] * arr[x] * arr[right + 1];let leftValue = reBalloon(arr,dp,visit,left,x-1);let rightValue = reBalloon(arr,dp,visit,x + 1,right);sum = Math.max(sum,leftValue + midValue + rightValue);}visit[left][right] = 1;dp[left][right] = sum;return sum;}function createArrTwo(num1,num2){//创建二维数组let arr = new Array(num1)for (let i = 0; i < num1; ++i) {arr[i] = new Array(num2)}return arr}
}
算法题 吹气球 javascript相关推荐
- javascript高级算法题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaScript算法题:查找数字在数组中的索引
翻译:疯狂的技术宅 原文:medium.freecodecamp.org/how-to-find- 编写算法时,排序是一个非常重要的概念.它有各种各样的种类:冒泡排序.希尔排序.分块块排序,梳排序,鸡 ...
- JavaScript算法题100道
排序算法 1.冒泡排序 从开始位置两两比较,持续n轮 function bubbleSort (arr) {// 执行第 i + 1 轮for (var i = 0; i < arr.lengt ...
- 【牛客】华为笔试算法题练习(简单篇)JavaScript V8 实现
牛客网华为面试题链接 本文都是自己写的从牛客上直接截图下来的,因为牛客的输入输出与常规写的优点不同,这点可以自己百度. 我自己摸索出来的,在Java Script V8 模式下,点开ACM模式,里面有 ...
- python 笔试题 英方_经典算法题 :找字符串中的逆序对(百度笔试题)
脚本之家 你与百万开发者在一起 来自:百度研发工程师2015深圳笔试卷 编程题:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对. 小贴士:返回上一级搜索"算法题& ...
- 算法题指南书_分类算法指南
算法题指南书 Today, we will see how popular classification algorithms work and help us, for example, to pi ...
- 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...
https://juejin.im/post/6844903811505455118 Introduction 面试过程通常从最初的电话面试开始,然后是现场面试,检查编程技能和文化契合度.几乎毫无例外 ...
- fifo算法_前端进阶算法6:一看就懂的队列及配套算法题
引言 队列这种数据结构,据瓶子君了解,前端需要了解的队列结构主要有:双端队列.滑动窗口,它们都是算法中是比较常用的数据结构. 因此,本节主要内容为: 数据结构:队列(Queue) 双端队列(Deque ...
- HWOD机试真题(JavaScript)
本栏有100+道算法题,并提供正确解法(JavaScript)和解题思路.保证都是华为机试真题(非练习题),大概率会考到原题.大家有什么问题可以留言探讨和交流. 华为机试有三道算法题, ...
- C1模拟试卷的一个算法题
C1模拟试卷的一个算法题 题目: 使用Math生成一个随机数,这个随机数需要在0到500之间. 然后,在网页中打印出来从10到这个随机数的回文数. 代码实现: <!DOCTYPE html> ...
最新文章
- DOCTYPE是什么鬼?文档模式又是什么鬼?
- 【译】Consortium Chain Development
- boost::hana::replicate用法的测试程序
- python编辑器_资深程序员:学Python我推荐你用这几款编辑器
- Scala 中的集合(三):实现一个新的 Collection 类
- DC漫画公司正在考虑进军NFT市场
- javascript 怎样才能确定参数变量的个数呢?
- 关于用C#编写ActiveX控件4(转)
- 计算机网络基础系列(一)概述、计算机网络性能
- 固态硬盘故障检测_diskgenius检测固态硬盘(ssd固态硬盘坏道修复)
- 如何使用(稿定)设计软件无水印
- php中求10递归算法,php递归算法
- 算是我看源码时的一个小技巧吧~
- DTCloud—QWeb
- 绕线画 钉子画 勾线画 自动设计软件源码
- 【Python报错解决】from PIL import Image 提示调用_imaging失败,已解决
- 2021湖南省地区高考成绩排名查询,湖南高考排名查询方法,2021年湖南高考成绩位次全省排名查询...
- python正则检验_Python 检测生僻字
- 使用Dism++备份系统文件并恢复
- 计算机基础知识教案结束语,【计算机基础论文】计算机基础教学模式探索与思考分析(共4342字)...
热门文章
- RAMOS (内存操作系统)-无忧百科(不断完善中)
- ESP8266刷入MicroPython固件教程
- 精华 | 网络故障排除命令汇总【网工必须收藏】
- [Ynoi2014]不归之人与望眼欲穿的人们
- 一阶线性偏微分方程通解法和特征线法(一)| 两个自变量情况 | 偏微分方程(七)
- 主成分分析matlab代码_主成分分析,换个角度看世界
- 信息学奥赛一本通 1947:【09NOIP普及组】细胞分裂 | 洛谷 P1069 [NOIP2009 普及组] 细胞分裂
- Docker容器的capability
- 学习字节跳动的团队管理
- antd系列之Select