描述

有n个气球,编号为0n-1,每个气球都有一个分数,存在nums数组中。每次吹气球i可以得到的分数为 nums[left] * nums[i] * nums[right],leftright分别表示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相关推荐

  1. javascript高级算法题

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. JavaScript算法题:查找数字在数组中的索引

    翻译:疯狂的技术宅 原文:medium.freecodecamp.org/how-to-find- 编写算法时,排序是一个非常重要的概念.它有各种各样的种类:冒泡排序.希尔排序.分块块排序,梳排序,鸡 ...

  3. JavaScript算法题100道

    排序算法 1.冒泡排序 从开始位置两两比较,持续n轮 function bubbleSort (arr) {// 执行第 i + 1 轮for (var i = 0; i < arr.lengt ...

  4. 【牛客】华为笔试算法题练习(简单篇)JavaScript V8 实现

    牛客网华为面试题链接 本文都是自己写的从牛客上直接截图下来的,因为牛客的输入输出与常规写的优点不同,这点可以自己百度. 我自己摸索出来的,在Java Script V8 模式下,点开ACM模式,里面有 ...

  5. python 笔试题 英方_经典算法题 :找字符串中的逆序对(百度笔试题)

    脚本之家 你与百万开发者在一起 来自:百度研发工程师2015深圳笔试卷 编程题:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对. 小贴士:返回上一级搜索"算法题& ...

  6. 算法题指南书_分类算法指南

    算法题指南书 Today, we will see how popular classification algorithms work and help us, for example, to pi ...

  7. 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...

    https://juejin.im/post/6844903811505455118 Introduction 面试过程通常从最初的电话面试开始,然后是现场面试,检查编程技能和文化契合度.几乎毫无例外 ...

  8. fifo算法_前端进阶算法6:一看就懂的队列及配套算法题

    引言 队列这种数据结构,据瓶子君了解,前端需要了解的队列结构主要有:双端队列.滑动窗口,它们都是算法中是比较常用的数据结构. 因此,本节主要内容为: 数据结构:队列(Queue) 双端队列(Deque ...

  9. HWOD机试真题(JavaScript)

    本栏有100+道算法题,并提供正确解法(JavaScript)和解题思路.保证都是华为机试真题(非练习题),大概率会考到原题.大家有什么问题可以留言探讨和交流.         华为机试有三道算法题, ...

  10. C1模拟试卷的一个算法题

    C1模拟试卷的一个算法题 题目: 使用Math生成一个随机数,这个随机数需要在0到500之间. 然后,在网页中打印出来从10到这个随机数的回文数. 代码实现: <!DOCTYPE html> ...

最新文章

  1. DOCTYPE是什么鬼?文档模式又是什么鬼?
  2. 【译】Consortium Chain Development
  3. boost::hana::replicate用法的测试程序
  4. python编辑器_资深程序员:学Python我推荐你用这几款编辑器
  5. Scala 中的集合(三):实现一个新的 Collection 类
  6. DC漫画公司正在考虑进军NFT市场
  7. javascript 怎样才能确定参数变量的个数呢?
  8. 关于用C#编写ActiveX控件4(转)
  9. 计算机网络基础系列(一)概述、计算机网络性能
  10. 固态硬盘故障检测_diskgenius检测固态硬盘(ssd固态硬盘坏道修复)
  11. 如何使用(稿定)设计软件无水印
  12. php中求10递归算法,php递归算法
  13. 算是我看源码时的一个小技巧吧~
  14. DTCloud—QWeb
  15. 绕线画 钉子画 勾线画 自动设计软件源码
  16. 【Python报错解决】from PIL import Image 提示调用_imaging失败,已解决
  17. 2021湖南省地区高考成绩排名查询,湖南高考排名查询方法,2021年湖南高考成绩位次全省排名查询...
  18. python正则检验_Python 检测生僻字
  19. 使用Dism++备份系统文件并恢复
  20. 计算机基础知识教案结束语,【计算机基础论文】计算机基础教学模式探索与思考分析(共4342字)...

热门文章

  1. RAMOS (内存操作系统)-无忧百科(不断完善中)
  2. ESP8266刷入MicroPython固件教程
  3. 精华 | 网络故障排除命令汇总【网工必须收藏】
  4. [Ynoi2014]不归之人与望眼欲穿的人们
  5. 一阶线性偏微分方程通解法和特征线法(一)| 两个自变量情况 | 偏微分方程(七)
  6. 主成分分析matlab代码_主成分分析,换个角度看世界
  7. 信息学奥赛一本通 1947:【09NOIP普及组】细胞分裂 | 洛谷 P1069 [NOIP2009 普及组] 细胞分裂
  8. Docker容器的capability
  9. 学习字节跳动的团队管理
  10. antd系列之Select