亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

312. Burst Balloons

calx / 2614人閱讀

摘要:接下來(lái)就是方程的問(wèn)題了。首先肯定是要遍歷切分點(diǎn),然后找使最大的切分點(diǎn),容易想到這個(gè)切分點(diǎn)表示的是扎破氣球的位置。還有一種考慮的方式,就是說(shuō)和不算在內(nèi)。那么方程現(xiàn)在變成,并且取不到邊界或者。

312. Burst Balloons

題目鏈接:https://leetcode.com/problems...

這題的dp方程還是挺難想的。首先subproblem比較容易:dp[i][j]: max coins I can get if there are balloons (i, j) left,有n^2個(gè)subproblem。接下來(lái)就是方程的問(wèn)題了。

首先肯定是要遍歷切分點(diǎn):k,然后max找使coin最大的切分點(diǎn),容易想到這個(gè)切分點(diǎn)表示的是扎破氣球的位置。但是如果選擇這個(gè)位置作為區(qū)間(i, j)里面第一次扎破氣球的位置,問(wèn)題就來(lái)了,扎破k之后,區(qū)間(i, j)內(nèi)部需要合并,一個(gè)式子看起來(lái)是沒(méi)法做的。所以轉(zhuǎn)換一下思路,設(shè)k是區(qū)間內(nèi)最后一個(gè)扎破的氣球,那么問(wèn)題就簡(jiǎn)單多了。k是區(qū)間內(nèi)最后一個(gè)的話,k現(xiàn)在相鄰的點(diǎn)就是i-1和j+1了,注意如果i = 0, j = n-1,要多帶帶討論下,還有分割點(diǎn)可以取左右邊界i或者j。

public class Solution {
    public int maxCoins(int[] nums) {
        int n = nums.length;
        if(n == 0) return 0;
        
        int[][] dp = new int[n][n];
        
        for(int len = 0; len < n; len++) {
            for(int i = 0; i < n - len; i++) {
                int j = i + len;
                for(int k = i; k <= j; k++) {
                    int l = i > 0 ? nums[i-1] : 1;
                    int r = j < n-1 ? nums[j+1] : 1;
                    int left = k - 1 >= i ? dp[i][k-1] : 0;
                    int right = k + 1 <= j ? dp[k+1][j] : 0;
                    dp[i][j] = Math.max(dp[i][j], l*nums[k]*r + left + right);
                }
            }
        }
        return dp[0][n-1];
    }
}

還有一種考慮subproblem的方式:dp[i][j]: : max coins I can get if there are balloons (i, j) left,就是說(shuō)i和j不算在內(nèi)。那么dp方程現(xiàn)在變成:dp[i][j] = max(nums[i]*nums[k]*nums[j], dp[i][k] + dp[k][j]),并且k取不到邊界i或者j。這時(shí)候,base case結(jié)果就變了: dp[i][i] = 0, dp[i][i+1] = 0

參考discussion:
https://discuss.leetcode.com/...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/76402.html

相關(guān)文章

  • [LeetCode] 312. Burst Balloons

    Problem Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by array nums. You are asked to burst all the balloons. If the you burst balloon i you will get...

    TerryCai 評(píng)論0 收藏0
  • leetcode 312. Burst Balloons

    摘要:之后該氣球?qū)⑾?,從而其左右兩個(gè)氣球成為相鄰的氣球。這意味著的時(shí)間復(fù)雜度。這樣就違背了分治法將問(wèn)題分解為獨(dú)立問(wèn)題的要求。此時(shí)得到的子隊(duì)列長(zhǎng)度等于,因此將無(wú)法拆解,即結(jié)束。 題目要求 Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it represented by arr...

    pinecone 評(píng)論0 收藏0
  • 312. Burst Balloons

    public class Solution { public int maxCoins(int[] nums) { int n = nums.length; int[] newNum = new int[n+2]; newNum[0] = 1; newNum[n+1] = 1; for(int i=0; i

    wyk1184 評(píng)論0 收藏0
  • css-in-js 探討

    摘要:庫(kù)通過(guò)在中插入標(biāo)簽在運(yùn)行時(shí)創(chuàng)建樣式。結(jié)論是一體化的樣式解決方案,用于彌合和之間的差距。零運(yùn)行時(shí)解決方案通過(guò)恢復(fù)工具來(lái)緩解一些缺點(diǎn),這些工具將討論提升到更有趣的水平。 Web開(kāi)發(fā)是需要掌握多種技術(shù)。我們習(xí)慣于與多種語(yǔ)言密切合作。而且,隨著開(kāi)發(fā)Web應(yīng)用程序變得越來(lái)越普遍和差別細(xì)微化,我們經(jīng)常尋找創(chuàng)造性的方法來(lái)彌合這些語(yǔ)言之間的差距,從而使我們的開(kāi)發(fā)環(huán)境和工作流程更容易,更高效。 最常見(jiàn)的...

    Scliang 評(píng)論0 收藏0
  • 解析React SSR 中的限流案例

      本篇文章主要為大家講述關(guān)于ReactSSR之限流,其實(shí)我們都知道React SSR是涉及到服務(wù)端的,因此,我們先需要考慮到很多的服務(wù)器端問(wèn)題,下面就為大家舉例說(shuō)明?! ‘?dāng)簡(jiǎn)單來(lái)說(shuō), React 的應(yīng)用進(jìn)行頁(yè)面加載或 SEO 優(yōu)化時(shí),都會(huì)想到React SSR。也就會(huì)想到服務(wù)器端,這是必須考慮到的?! ‖F(xiàn)在我們來(lái)說(shuō)下所謂限流,其實(shí)是在我們的服務(wù)資源有限、處理能力有限時(shí),通過(guò)對(duì)請(qǐng)求或并發(fā)數(shù)進(jìn)行限制...

    3403771864 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<