当前位置: 首页 > article >正文

力扣动态规划-5【算法学习day.99】

前言

###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.打家劫舍II

题目链接:213. 打家劫舍 II - 力扣(LeetCode)

题面:

分析:这题主要难点在于最后一个和第一个的考虑上,我这边解决麻烦了点但更好理解,用两个数组,分别表示第一个选了和第一个没选

代码:

class Solution {
    public int rob(int[] nums) {
        int n = nums.length;
        if(n==1)return nums[0];
        int[][] flag = new int[n][2];
        int[][] flag2 = new int[n][2];
        flag[0][0] = 0;
        flag[0][1] = nums[0];
        flag2[0][0] = 0;
        flag2[0][1] = 0;
        for(int i = 1;i<n;i++){
            flag[i][0] = Math.max(flag[i-1][1],flag[i-1][0]);
            flag[i][1] = flag[i-1][0]+nums[i];
            flag2[i][0] = Math.max(flag2[i-1][1],flag2[i-1][0]);
            flag2[i][1] = flag2[i-1][0]+nums[i];
        }
        return Math.max(flag[n-1][0],Math.max(flag2[n-1][0],flag2[n-1][1]));
    }
}


后言

上面是动态规划相关的习题,共勉


http://www.kler.cn/a/516861.html

相关文章:

  • Python 预训练:打通视觉与大语言模型应用壁垒——Python预训练视觉和大语言模型
  • PHP如何封装项目框架达到高可用、高性能、高并发
  • 制作动态菜单
  • PL/SQL语言的图形用户界面
  • XX污水处理厂基于RK3576核心板应用(四)——人员倒地智能识别系统方案
  • Trimble三维激光扫描-地下公共设施维护的新途径【沪敖3D】
  • 快速排序:一种高效的排序算法
  • Python 预训练:打通视觉与大语言模型应用壁垒——Python预训练视觉和大语言模型
  • WPS计算机二级•表格保护与打印
  • 深入解析:使用 Python 爬虫获取苏宁商品详情
  • 总结 uniapp 上不适配iphone的:new Date 时间、border线条、渐变
  • 深入探索 Nginx 的高级用法:解锁 Web 服务器的强大潜能
  • 2. Flink分区策略
  • vue3的组件v-model(defineModel()宏)
  • 第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
  • 深度学习|表示学习|卷积神经网络|通道 channel 是什么?|05
  • 怎样使用树莓派自己搭建一套ADS-B信号接收系统
  • 栈和队列刷题篇
  • 新能源汽车充电桩选型以及安装应用
  • 2025.1.20——四、[强网杯 2019]Upload1 文件上传|反序列化
  • STM32——KEY按键
  • ETLCloud在iPaas中的是关键角色?
  • 若依 v-hasPermi 自定义指令失效场景
  • Java核心技术解析:泛型与类型安全全面指南
  • android wifi AsyncChannel(WifiManager和WifiP2pManager)
  • 【CS61A 2024秋】Python入门课,全过程记录P3(Week5 Sequences开始,更新于2025/1/23)