当前位置:网站首页>LeetCode 312. Poke balloon daily
LeetCode 312. Poke balloon daily
2022-07-07 16:59:00 【@Little safflower】
Problem description
Yes n A balloon , The number is 0 To n - 1, Each balloon is marked with a number , There are arrays of these numbers nums in .
Now I ask you to prick all the balloons . Pierce the second i A balloon , You can get nums[i - 1] * nums[i] * nums[i + 1] Coin . there i - 1 and i + 1 For and on behalf of i The serial number of the two adjacent balloons . If i - 1 or i + 1 Beyond the bounds of the array , Then think of it as a number for 1 The balloon .
Find the maximum number of coins you can get .
Example 1:
Input :nums = [3,1,5,8]
Output :167
explain :
nums = [3,1,5,8] --> [3,5,8] --> [3,8] --> [8] --> []
coins = 3*1*5 + 3*5*8 + 1*3*8 + 1*8*1 = 167
Example 2:Input :nums = [1,5]
Output :10
Tips :
n == nums.length
1 <= n <= 300
0 <= nums[i] <= 100source : Power button (LeetCode)
link :https://leetcode.cn/problems/burst-balloons
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
Java
class Solution {
public int maxCoins(int[] nums) {
int n = nums.length;
int[] arr = new int[n + 2];
arr[0] = arr[n + 1] = 1;
for(int i = 0;i < n;i++) arr[i + 1] = nums[i];
int[][] dp = new int[n + 2][n + 2];
for(int i = n - 1;i >= 0;i--){
for(int j = i + 2;j <= n + 1;j++){
// First find two boundaries i and j, Then poke the balloon between them , Open range
for(int k = i + 1;k < j;k++){
// Number i To number j The maximum score is : Number i To number k Score of + Number k To number j Score of + The stamp number is k Score of
dp[i][j] = Math.max(
dp[i][j],
dp[i][k] + dp[k][j] + arr[i] * arr[k] * arr[j]
);
}
}
}
// The number is 1 To No n The balloon with the highest score
return dp[0][n + 1];
}
}边栏推荐
- LeetCode 300. 最长递增子序列 每日一题
- Binary search tree (basic operation)
- 最新2022年Android大厂面试经验,安卓View+Handler+Binder
- typescript ts 基础知识之类型声明
- 谎牛计数(春季每日一题 53)
- 如何选择合适的自动化测试工具?
- Sqlserver2014+: create indexes while creating tables
- QT中自定义控件的创建到封装到工具栏过程(一):自定义控件的创建
- 字节跳动Android金三银四解析,android面试题app
- [Android -- data storage] use SQLite to store data
猜你喜欢
随机推荐
偶然升职的内心独白
Advanced C language -- function pointer
打造All-in-One应用开发平台,轻流树立无代码行业标杆
Personal notes of graphics (4)
ORACLE进阶(六)ORACLE expdp/impdp详解
AutoLISP series (1): function function 1
LeetCode 152. Product maximum subarray daily question
【Seaborn】组合图表、多子图的实现
DNS 系列(一):为什么更新了 DNS 记录不生效?
Three. JS series (3): porting shaders in shadertoy
应用在温度检测仪中的温度传感芯片
LeetCode 1654. 到家的最少跳跃次数 每日一题
LeetCode-SQL第一天
LeetCode 1155. 掷骰子的N种方法 每日一题
Talk about the realization of authority control and transaction record function of SAP system
记录Servlet学习时的一次乱码
Lowcode: four ways to help transportation companies enhance supply chain management
LeetCode 1696. Jumping game VI daily question
值得一看,面试考点与面试技巧
浅浅理解.net core的路由









