【每日LeetCode】递归、记忆化搜索

news2024/12/24 8:42:50

递归、记忆化搜索

【leetcode70 爬楼梯】

class Solution {
    public int climbStairs(int n) {
       int[] memo = new int[n + 1];
       return dfs(n, memo);
    }
     private int dfs(int i, int[] memo){
            if(i <= 1){
                return 1;
            }
            if(memo[i] != 0){
                return memo[i];
            }
            return memo[i] = dfs(i-1,memo) + dfs(i-2,memo);
        }
}

上水课的时候在ipad上画的,主要是那老师管的太宽了,大学水课真的太多太烦了。

参考文章 递归、搜索与回溯算法(专题六:记忆化搜索)_记忆化回溯-CSDN博客

斐波那契数

斐波那契数

斐波那契数

如何实现记忆化搜索?

先复习一下动态规划的核心步骤(5个),并将动态规划的每一步对应记忆化搜索(加强版的递归)的每一步

① 确定动态表示:dp[i]要表示什么,dp[i]表示第i位的斐波那契数 ——> 递归:dfs函数的含义(函数头有什么参数、什么返回值)

② 确定动态转移方程:dp[i] = dp[i - 1] + dp[i - 2] ——> 递归:dfs函数的主体(函数做了什么)

③ 初始化:防止越界,dp[0] = 0,dp[1] = 1 ——> 递归:dfs函数的递归出口(n == 0 或 n == 1时)

④ 确定填表顺序:从左往右 ——> 递归:填写备忘录的顺序

⑤ 确定返回值:dp[n] ——> 递归:主函数如何调用dfs函数

int[] dp;

    public void dp(int n) {
        dp = new int[n + 1];
        dp[0] = 0;
        if (n > 0) {
            dp[1] = 1;
        }
        for (int i = 2; i <= n; i++) {
            dp[i] = dp[i - 1] + dp[i - 2];
        }
    }

力扣118. 杨辉三角

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> aa = new ArrayList<List<Integer>>();//泛型
        for(int i=0; i<numRows; i++){//行
            List<Integer> row = new ArrayList<Integer>();//泛型
            for(int j=0; j<=i; j++){//列
                if(j == 0 || j == i){//最左边这列和最右边这列都是1
                    row.add(1);
                }else{
                    row.add(aa.get(i-1).get(j-1) + aa.get(i-1).get(j));
                }
            }
            aa.add(row);
        }
        return aa;
    }
}

又来一题:

class Solution {
    public List<Integer> getRow(int rowIndex) {
        List<List<Integer>> ret = new ArrayList<List<Integer>>();
        // 这里和之前不一样 这里要返回第几行的值 前面要返回前几行的值 所以i <= rowIndex
        for (int i = 0; i <= rowIndex; i++) {
            List<Integer> row = new ArrayList<Integer>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i) {
                    row.add(1);// 最左边和最右边都是1
                } else {
                    row.add(ret.get(i - 1).get(j - 1) + ret.get(i - 1).get(j));// 一样
                }
            }
            ret.add(row);
        }
        // 前面return ret;是返回ret数组中的所有
        return ret.get(rowIndex);// 返回第几行的值
    }
}

好烦,啊啊啊啊啊啊啊啊啊啊啊啊啊向他妈的阳而生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1831139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

成功秘诀曝光:老阳分享选品师赚钱攻略

当谈论老阳分享的外海拼多多选品师项目时&#xff0c;人们往往对其真实性和可行性存有疑问。这个项目被宣传为一个能够稳定创收的机会&#xff0c;但在决定是否投身其中之前&#xff0c;了解其具体运作和实际效果至关重要。 老阳分享作为电商培训平台&#xff0c;旨在培养和支持…

充电学习——0、电源管理

一、设备电源管理&#xff1a; 两种类型 1、系统睡眠模型&#xff1a; 设备驱动作为系统一部分&#xff0c;会跟随系统进入低功耗状态&#xff0c;suspend &#xff08;suspend-to-ram&#xff09; 一些驱动程序可以管理硬件的唤醒事件&#xff0c; 这一特性通过/sys/device/…

GaussDB技术解读——GaussDB架构介绍(四)

目录 11 GaussDB云原生架构 11.1 云原生关键技术架构 11.2 关键技术方案 11.2.1 通信组件 11.2.2 集群管理组件 11.2.3 多租组件 GaussDB架构介绍&#xff08;三&#xff09;从智能关键技术方案、驱动接口关键技术方案等方面对GaussDB架构进行了解读&#xff0c;本篇将…

【CTF Web】CTFShow 探针泄露 Writeup(PHP+探针泄露+信息收集)

探针泄露 10 对于测试用的探针&#xff0c;使用完毕后要及时删除&#xff0c;可能会造成信息泄露 解法 查看网页源代码。 view-source:https://11170dfe-84c7-4fde-b1ca-5d1ec3dd7570.challenge.ctf.show/没有找到有用的信息。 用 dirsearch 扫描。 dirsearch -u https://1…

FPGA学习最好的2个网站?

自学FPGA最好的两个网站: Xilinx官方网站: ​网址链接&#xff1a; https://www.amd.com/zh-cn.html Xilinx Wiki - Confluence (http://atlassian.net) Xilinx GitHub&#xff08;https://github.com/Xilinx&#xff09; 电子创新网赛灵思社区 | 电子创新网 (http://eet…

原生APP开发的技术优势

原生应用程序&#xff08;Native App&#xff09;是直接使用特定操作系统的编程语言和开发工具为特定平台&#xff08;如iOS、Android等&#xff09;开发的应用程序。原生APP开发具有以下优势。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流…

深度学习推理显卡设置

深度学习推理显卡设置 进入NVIDIA控制面板&#xff0c;选择 “管理3D设置”设置 "低延时模式"为 "“超高”"设置 “电源管理模式” 为 “最高性能优先” 使用锁频来获得稳定的推理 法一&#xff1a;命令行操作 以管理员身份打开CMD查看GPU核心可用频率&…

服务器数据恢复—KVM虚拟机被误删除如何恢复虚拟磁盘文件?

服务器数据恢复环境&故障&#xff1a; 1台服务器&#xff0c;Linux操作系统EXT4文件系统&#xff0c;部署了数台KVM虚拟机&#xff0c;每台虚拟机包含一个qcow2格式的磁盘文件&#xff0c;和一个raw格式的磁盘文件。 工作人员操作失误删除了3台服务器上的KVM虚拟机&#xf…

【递归、搜索与回溯】综合练习三

综合练习三 1.优美的排列3.N 皇后3.有效的数独4.解数独 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.优美的排列 题目链接&#xff1a;5…

开发框架表单设计器都有哪些突出的功能优势?

想要实现提质增效的办公效果&#xff0c;可以一起来聊聊低代码技术平台、开发框架表单设计器在职场办公中的应用价值吧。随着社会的进步和行业之间的竞争加剧化&#xff0c;要想更好地利用数据资源&#xff0c;更好地避免信息孤岛&#xff0c;提高部门之间的协作效率&#xff0…

618有什么好物分享 ?2024年最新数码榜单出炉

亲爱的朋友们&#xff0c;随着6.18购物狂欢节的临近&#xff0c;即将迎来一场购物盛宴。面对市场上琳琅满目的商品&#xff0c;团团知道大家在挑选时可能会感到困惑。因此&#xff0c;我根据个人的使用体验和深入的市场研究&#xff0c;为大家精心挑选了一系列高品质且性价比极…

2024爱分析·AI Agent创新成就奖开启申报丨奖项征集

AI Agent正成为企业数字化转型的关键力量。它们不仅提升了工作效率&#xff0c;优化了客户体验&#xff0c;更是在数据分析、决策支持和自动化流程中扮演着至关重要的角色。随着技术的不断进步和应用场景的拓展&#xff0c;AI Agent正以其独特优势&#xff0c;引领企业进入一个…

hive on spark 记录

环境&#xff1a; hadoop 2.7.2 spark-without-hadoop 2.4.6 hive 2.3.4 hive-site.xml <property><name>hive.execution.engine</name><value>spark</value> </property> <property><name>spark.yarn.jars</name>&l…

Ai绘画行业又叒翻天了!Stable Diffusion 3.0开源!多图实测附安装包!

千呼万唤始出来&#xff0c;期盼已久的SD3终于在6月12日开放了开源模型&#xff0c;本次开源的模型Stable Diffusion 3 Medium&#xff0c;是一个拥有 20 亿参数的SD3模型&#xff0c;其官网公布了它本次更新的特点&#xff1a; 还有更完整版本的大模型目前还未开放&#xff0c…

产品求职必备:“一份优秀产品简历的诞生”

​好不容易学成要开始求职&#xff0c;简历这一关却成了不少同学的“拦路虎”。 “我的简历投出去没反应~”“我的简历项目经验应该怎么写&#xff1f;” “我的简历完全不知道怎么改” 01明确职业目标 一份泛泛而谈的简历不会让你脱颖而出&#xff0c;如果你对自己还没有清晰…

flink1.12.0学习笔记(一)-部署与入门

flink1.12.0学习笔记&#xff08;1&#xff09;-部署与入门 1-1-Flink概述 Flink诞生 Flink 诞生于欧洲的一个大数据研究项目 StratoSphere。该项目是柏林工业大学的一个研究性项目。早期&#xff0c; Flink 是做 Batch 计算的&#xff0c;但在 2014 年&#xff0c; StratoS…

Chatgpt、Chatglm、Gemini、通义千问、文心一言、Kimi、字节豆包 AI 写高考作文,附各大模型体验案例~

六月&#xff0c;高考季&#xff0c;AI 来帮 阅读材料 要求&#xff1a;选准角度&#xff0c;确定立意&#xff0c;明确文体&#xff0c;自拟标题&#xff1b;不要套作&#xff0c;不得抄袭&#xff1b;不得泄露个人信息&#xff1b;不少于800字。 Ai 来写作 【构建提示…

网站的图片都是怎么处理的

我们平常见到的很多网站里面都有很多地图片&#xff0c;那么这些图片的文件是怎么处理的呢。图片是一个网站的重要元素之一&#xff0c;图片可以给用户直接的视觉冲击&#xff0c;好的图片则可以迎来不少的流量。图片有大有小&#xff0c;都是根据网站的局部需要而确定图片的尺…

安卓TextView控件实现下划线

效果展示 这里需要使用到LayerDrawable&#xff0c;对应于<layer-list>标签。在drawable目录下新建一个text_underline.xml文件&#xff0c;text_underline.xml的代码如下&#xff1a; <?xml version"1.0" encoding"utf-8"?> <layer-lis…

SOLIDWORKS Electrical线号编写规则

SOLIDWORKS Electrical 正版软件可以自动在原理图中生成线号&#xff0c;比如需要线号L1 L2 L3 R S T U V W &#xff0c;以及101 102 103 &#xff0c;COM1 COM2 COM3 以及让其偶数显示(00、02、04)等等&#xff0c;在格式编辑器中有很多已有的变量供用户使用&#xff0c;用户…