国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

面試算法100:三角形中最小路徑之和

這篇具有很好參考價(jià)值的文章主要介紹了面試算法100:三角形中最小路徑之和。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

題目

在一個(gè)由數(shù)字組成的三角形中,第1行有1個(gè)數(shù)字,第2行有2個(gè)數(shù)字,以此類推,第n行有n個(gè)數(shù)字。例如,下圖是一個(gè)包含4行數(shù)字的三角形。如果每步只能前往下一行中相鄰的數(shù)字,請(qǐng)計(jì)算從三角形頂部到底部的路徑經(jīng)過的數(shù)字之和的最小值。從三角形頂部到底部的路徑數(shù)字之和的最小值為11,對(duì)應(yīng)的路徑經(jīng)過的數(shù)字用陰影表示。
面試算法100:三角形中最小路徑之和,算法,算法
說明:從三角形頂部到底部的路徑數(shù)字之和的最小值為11,對(duì)應(yīng)的路徑經(jīng)過的數(shù)字用陰影表示

分析

可以移動(dòng)三角形每行的位置使它們左端對(duì)齊
面試算法100:三角形中最小路徑之和,算法,算法
可以用f(i,j)表示從三角形的頂部出發(fā)到達(dá)行號(hào)和列號(hào)分別為i和j(i≥j)的位置時(shí)路徑數(shù)字之和的最小值,同時(shí)用T[i][j]表示三角形行號(hào)和列號(hào)分別為i和j的數(shù)字。如果三角形中包含n行數(shù)字,那么f(n-1,j)的最小值就是整個(gè)問題的最優(yōu)解。文章來源地址http://www.zghlxwxcb.cn/news/detail-792485.html

public class Test {
    public static void main(String[] args) {
        List<Integer> list1 = Arrays.asList(2);
        List<Integer> list2 = Arrays.asList(3, 4);
        List<Integer> list3 = Arrays.asList(6, 5, 7);
        List<Integer> list4 = Arrays.asList(4, 1, 8, 3);
        List<List<Integer>> triangle = Arrays.asList(list1, list2, list3, list4);
        int result = minimumTotal(triangle);
        System.out.println(result);

    }

    public static int minimumTotal(List<List<Integer>> triangle) {
        int size = triangle.size();
        int[][] dp = new int[size][size];
        for (int i = 0; i < size; i++) {
            for (int j = 0; j <= i; j++) {
                dp[i][j] = triangle.get(i).get(j);
                if (i > 0 && j == 0) {// 最左邊
                    dp[i][j] += dp[i - 1][j];
                }
                else if (i > 0 && i == j) {// 最右邊
                    dp[i][j] += dp[i - 1][j - 1];
                }
                else if (i > 0) {
                    dp[i][j] += Math.min(dp[i - 1][j], dp[i - 1][j - 1]);
                }
            }
        }

        int min = Integer.MAX_VALUE;
        for (int num : dp[size - 1]) {// 答案在最底層,選出一個(gè)最小的
            min = Math.min(min, num);
        }
        return min;
    }
}

到了這里,關(guān)于面試算法100:三角形中最小路徑之和的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 「優(yōu)選算法刷題」:有效三角形的個(gè)數(shù)

    給定一個(gè)包含非負(fù)整數(shù)的數(shù)組? nums ?,返回其中可以組成三角形三條邊的三元組個(gè)數(shù)。 示例 1: 示例 2: 這道題,有一點(diǎn)挺新鮮的:構(gòu)成三角形的三條邊,僅需滿足 2 條最短邊之和大于等于第三條邊即可。 以前的羅根,就總是傻傻地求 3 次?? 今天這道題,算是又打開了我新世

    2024年01月20日
    瀏覽(20)
  • 模型減面算法, 優(yōu)化模型三角形

    sp4cerat/Fast-Quadric-Mesh-Simplification: Mesh triangle reduction using quadrics (github.com) https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification

    2023年04月24日
    瀏覽(23)
  • 用動(dòng)態(tài)規(guī)劃算法編程實(shí)現(xiàn)數(shù)字三角形問題

    用動(dòng)態(tài)規(guī)劃算法編程實(shí)現(xiàn)數(shù)字三角形問題

    如下所示為一個(gè)數(shù)字三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 請(qǐng)編一個(gè)程序計(jì)算從頂至底的某一條路徑,使該路徑所經(jīng)過的數(shù)字的總和最大。 思路:建立兩個(gè)二位數(shù)組m(用來存儲(chǔ)數(shù)字三角形),sum(用來存儲(chǔ)數(shù)字三角形中每一個(gè)值得路徑值);sum[i] [j]從最后一行開始存儲(chǔ); 如果當(dāng)前

    2024年02月11日
    瀏覽(20)
  • 雙指針?biāo)惴▽?shí)例5(有效三角形的個(gè)數(shù))

    給定一個(gè)包含非負(fù)整數(shù)的數(shù)組? nums ?,返回其中可以組成三角形三條邊的三元組個(gè)數(shù)。 示例 1: 示例 2: 提示: 1 = nums.length = 1000 0 = nums[i] = 1000 三角形構(gòu)成條件:任意兩邊之和一定要大于第三邊 其實(shí)在判斷中,只需要判斷 最小的兩邊和大于最長的一邊 即可 假設(shè) a=b=c 若要構(gòu)成

    2024年02月11日
    瀏覽(25)
  • 【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...

    【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...

    此段代碼的主要功能是:利用OpenCV庫生成隨機(jī)點(diǎn)集,并計(jì)算并展示這些點(diǎn)的最小外包矩形、三角形和圓形。用戶可以通過按鍵重新生成不同的隨機(jī)點(diǎn)集,或者按ESC/Q退出程序。程序中利用了OpenCV的隨機(jī)數(shù)生成函數(shù)、繪圖函數(shù)以及幾何形狀的計(jì)算函數(shù)。

    2024年04月14日
    瀏覽(99)
  • 貪心算法求數(shù)組中能組成三角形的最大周長

    題目:三角形的最大周長 給定由一些正數(shù)(代表長度)組成的數(shù)組arr,返回由其中三個(gè)長度組成的、面積不為零的三角形的最大周長。 如果不能形成任何面積不為零的三角形,返回`0。 分析: 對(duì)數(shù)組排序,再從大到小選擇三個(gè)數(shù), 再判斷是否能構(gòu)成三角形,可以直接返回三數(shù)之

    2024年02月12日
    瀏覽(19)
  • 【算法專題突破】雙指針 - 有效三角形的個(gè)數(shù)(5)

    【算法專題突破】雙指針 - 有效三角形的個(gè)數(shù)(5)

    目錄 1. 題目解析 2. 算法原理 3. 代碼編寫 寫在最后: 題目鏈接:611. 有效三角形的個(gè)數(shù) - 力扣(Leetcode) ?我們可以根據(jù)示例1來理解這一道題目, 他說數(shù)組里面的數(shù)可以組成三角形三條邊的個(gè)數(shù), 那我們先自己枚舉一下所有情況看看: ?【2, 2, 3】 ?【2, 2, 4】 ?【2,

    2024年02月10日
    瀏覽(21)
  • 使用Python實(shí)現(xiàn)高效數(shù)據(jù)下采樣:詳解最大三角形三桶(LTTB)算法

    引言 在我們接觸大規(guī)模的數(shù)據(jù)集時(shí),數(shù)據(jù)的數(shù)量往往會(huì)讓人望而卻步。數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等領(lǐng)域的專業(yè)人員需要對(duì)這些數(shù)據(jù)進(jìn)行處理,以便更好地理解數(shù)據(jù),以及利用數(shù)據(jù)進(jìn)行預(yù)測(cè)。然而,處理大規(guī)模數(shù)據(jù)的計(jì)算成本往往非常高,這時(shí)候,就需要引入下采樣(Downsampling)的

    2024年02月14日
    瀏覽(29)
  • 【算法挨揍日記】day03——雙指針?biāo)惴╛有效三角形的個(gè)數(shù)、和為s的兩個(gè)數(shù)字

    【算法挨揍日記】day03——雙指針?biāo)惴╛有效三角形的個(gè)數(shù)、和為s的兩個(gè)數(shù)字

    ?? 611.?有效三角形的個(gè)數(shù) https://leetcode.cn/problems/valid-triangle-number/ 給定一個(gè)包含非負(fù)整數(shù)的數(shù)組? nums ?,返回其中可以組成三角形三條邊的三元組個(gè)數(shù)。 本題是一個(gè)關(guān)于三角形是否能成立的題目,首先我們假設(shè)三角形的三邊(a,b,c),我們要保證兩邊之和大于第三邊 ? ?題

    2024年02月12日
    瀏覽(22)
  • 算法分析與設(shè)計(jì)-數(shù)字三角形問題(動(dòng)態(tài)規(guī)劃)(通俗易懂,附源碼和圖解,含時(shí)間復(fù)雜度分析)(c++)

    算法分析與設(shè)計(jì)-數(shù)字三角形問題(動(dòng)態(tài)規(guī)劃)(通俗易懂,附源碼和圖解,含時(shí)間復(fù)雜度分析)(c++)

    (一)題目 問題描述 給定一個(gè)由 n n n 行數(shù)字組成的數(shù)字三角形,如圖所示。 試設(shè)計(jì)一個(gè)算法,計(jì)算從三角形的頂至底的一條路徑,使該路徑經(jīng)過的數(shù)字總和最大。 算法設(shè)計(jì) 對(duì)于給定的由 n n n 行數(shù)字組成的數(shù)字三角形,計(jì)算從該三角形的頂至底的路徑經(jīng)過的數(shù)字和的最大值

    2023年04月10日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包