首页 > 编程语言 >算法刷题:DP专题(9.16,持续更)

算法刷题:DP专题(9.16,持续更)

时间:2023-09-16 20:33:36浏览次数:42  
标签:lf triangle get 9.16 min int rf DP 刷题

算法刷题系列上期:


目录


动态规划基础

状态

状态转移函数

题目

三角形最小路径和

时间:3ms 击败 77%

class Solution {
    public int minimumTotal(List<List<Integer>> triangle) {
        if(triangle == null || triangle.isEmpty()) return 0;
        int n = triangle.size();
        int [][] f = new int [n][n];
        // ift0
        f[0][0] = triangle.get(0).get(0);
        for(int i = 1; i < n; i++){
            for(int j = 0; j < i; j++){
                int lf = 0x3fffffff, rf = f[i - 1][j];
                if(j > 0) lf = f[i - 1][j - 1];
                // 最开始是 f[i][j] = lf < rf ? lf : rf; //
                f[i][j] = (lf < rf ? lf : rf) + triangle.get(i).get(j);
            } // f[i][j] = f[i - 1][j - 1]; 
            // 最开始忘记 triangle.get(i).get(j) 这部分了
            f[i][i] = f[i - 1][i - 1] + triangle.get(i).get(i);
        }
        int min = 0x3fffffff;
        for(int i = 0; i < n; i++){
            if(min > f[n - 1][i]){
                min = f[n - 1][i];
            }
        } return min;
    }
}

标签:lf,triangle,get,9.16,min,int,rf,DP,刷题
From: https://www.cnblogs.com/luoyicode/p/17707257.html

相关文章

  • 9.16日总结
    今日完成pta上两道题1,本题要求实现六个函数,顺序表为整型数据,可实现输入、输出、取值、查找、插入、删除功能。1voidListOutput(SqListL){2for(inti=0;i<L.length;i++){3cout<<L.elem[i]<<"";4}5cout<<endl;6}7voidListInput(SqLi......
  • 9.16日pta练习
    请编写程序实现单链表插入、删除结点等基本算法。给定一个单链表和一系列插入、删除结点的操作序列,输出实施上述操作后的链表。单链表数据域值为整数。输入格式:输入第1行为1个正整数n,表示当前单链表长度;第2行为n个空格间隔的整数,为该链表n个元素的数据域值。第3行为1个正整数m,......
  • 【2023潇湘夜雨】WIN11_Pro_23H2.22631.2338软件选装纯净版9.16
    【系统简介】=============================================================1.本次更新母盘来自WIN11_Pro_23H2.22631.2338。2.增加部分优化方案,手工精简部分较多。3.OS版本号为22631.2338。精简系统只是为部分用户安装,个别要求高的去MSDN下。4.集成《DrvCeo-2.13.0.8》网卡版、......
  • 23.9.16(Java版登录界面)
    //Anadditionprogramimportjavax.swing.JOptionPane;//importclassJOptionPaneimportjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.image.BufferedImage;importjava.util.Random;pub......
  • UDP编程
    UDP编程1.字节序1.1字节序概述字节序概念:是指多字节数据的存储顺序分类:小端格式:将低位字节数据存储在低地址大端格式:将高位字节数据存储在低地址大端:高字节数据存放低地址小端:低字节数据存放低地址1.2确认主机的字节序编写一个共用体,内存大小为2个字节。为short赋......
  • 9.16 英语精读
    9.16精读国货 GlobalconsumerbrandsgrapplingwithatepideconomicrecoveryinChinahaveanotherworry:Buyersinthecountryareturningmoretolocallabels.Asrecentlyasfiveyearsago,China'sconsumermarketwasdominatedbyforeignbran......
  • 9.16
    课堂测试重写publicclassWarehouseInformation{privateStringitemno;privateStringitemname;privateStringsuppliername;privateStringwarehousingtime;privateStringshipmenttime;privateStringwarehous......
  • 洛谷P4316 绿豆蛙的归宿(期望dp)
    原题链接:https://www.luogu.com.cn/problem/P4316这题是经典的概率dp题,通常看到的题解都是逆推的做法,实际上理解了题目的含义后发现逆推其实是正推的一种特殊情况而已正推做法:定义dp[i]表示从1~i的路径长度的期望,那么dp[1]=0,答案就是dp[n]状态转移公式://u->vdp[v]=(d......
  • 小白也能看懂的插件化DroidPlugin原理(一)-- 动态代理
    前言:插件化在Android开发中的优点不言而喻,也有很多文章介绍插件化的优势,所以在此不再赘述。前一阵子在项目中用到DroidPlugin插件框架,近期准备投入生产环境时出现了一些小问题,所以决心花些时间研究了一下DroidPlugin插件框架的原理,以便再出现问题时也能从容应对。打开源码后发......
  • 【南外】DPS1-C
    /*树形DP,记f[i]表示覆盖以i为根的子树最少需要链的数量。记fl[i]=0/1表示当前i节点是否属于任意一条链。记res表示当前搜到节点x时,它有多少个儿子还不属于任何一条链。考虑贪心(不太会证明正确性)如果当前节点的res>=2,则可以选两个未连节点与x共同构成一条链,fl......