news 2026/7/22 4:54:40

7月21日打卡

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
7月21日打卡

今天目前写了爬楼梯的三道题目,以及合并有序的链表:最后附有代码

#爬楼梯 三个题目

#(1)普通爬楼梯 每次只能走一个台阶或者两个台阶

#(2)加条件:爬两个台阶之后只能走两个连续的一个台阶

#(3)加条件:怕两个台阶之后只能走一个台阶

自己的感悟:首先就是画图很重要,需要把这个转换的图画出来,如下图所示,这样才更容易写出来:

(2)的图:

(3)的图:

然后的话,自己在写代码的过程中出现的问题:

1.dp[0][0]=1写成了dp[0]=1

2.dp[i][1]=dp[i-2][0] if i-2>=0 else 0 这里注意应该是i-2的自由态 走了两步 然后走到了 i 的限制1的状态 ;           

  dp[i][1]=dp[i-2][0] if i-2>=0 else 0 同理,这个也是i-2的自由态 走了两步 然后走到了i 的 下一步智能走1的状态 

完整的代码如下:

(1)--------------------------------------------

class Solution:

    def climbStairs(self, n: int) -> int:

        a,b=1,1

        for i in range(n-1):

            a,b=b,a+b

        return b

(2)--------------------------------------------

class Solution:

    def climbStairs(self, n: int) -> int:

        if n==1:

            return 1

        dp=[[0,0,0] for _ in range(n+1)]

        dp[0][0]=1

        for i in range(1,n+1):

            dp[i][0]=dp[i-1][0]+dp[i-1][2]

            dp[i][1]=dp[i-2][0] if i-2>=0 else 0

            dp[i][2]=dp[i-1][1]

        return sum(dp[n])    

(3)--------------------------------------------

class Solution:

    def climbStairs(self, n: int) -> int:

        if n==1:

            return 1

        dp=[[0,0,0] for _ in range(n+1)]

        dp[0][0]=1

        for i in range(1,n+1):

            dp[i][0]=dp[i-1][0]+dp[i-1][1]

            dp[i][1]=dp[i-2][0] if i-2>=0 else 0

        return sum(dp[n])

合并有序的链表:

思路就是递归调用,比较简单,在写的过程中出现了一点问题就是:

比较两个链表的第一个值的时候要写l1.val<l2.val而不是l1<l2

# Definition for singly-linked list.

# class ListNode:

#     def __init__(self, val=0, next=None):

#         self.val = val

#         self.next = next

class Solution:

    def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:

        if not list1:

            return list2

        if not list2: return list1

        if list1.val<list2.val:

            list1.next=self.mergeTwoLists(list1.next,list2)

            return list1

        else:

            list2.next=self.mergeTwoLists(list1,list2.next)

            return list2

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 4:54:28

Linux基础及命令合集

前言 本帖基于 Ubuntu 64 位虚拟机整理&#xff0c;面向嵌入式 Linux 入门学习者&#xff0c;汇总终端常用快捷键、系统目录结构、Linux 基础文件命令、权限管理、Vim 编辑器操作、GCC 编译流程、ARM 交叉编译等实操内容。重点服务虚拟机下 C 语言程序开发与嵌入式前期环境调…

作者头像 李华
网站建设 2026/7/22 4:53:10

苹果M6芯片战略调整与2nm工艺技术解析

1. M6芯片战略调整背后的半导体行业变局台积电2nm工艺节点即将量产的消息&#xff0c;让苹果M系列芯片的迭代路线图再次成为焦点。最新曝光的M6芯片方案显示&#xff0c;苹果正在调整其产品策略&#xff1a;取消原计划中的高配版本&#xff0c;集中资源攻克2nm新工艺。这个看似…

作者头像 李华
网站建设 2026/7/22 4:50:32

高性能定时器设计:时间轮算法原理与C++实现详解

1. 项目概述&#xff1a;为什么我们需要时间轮&#xff1f; 在后台服务、游戏服务器或者任何需要处理大量并发定时任务的系统中&#xff0c;定时器&#xff08;Timer&#xff09;的管理都是一个核心且棘手的问题。想象一下&#xff0c;一个在线游戏服务器需要管理成千上万个玩家…

作者头像 李华
网站建设 2026/7/22 4:47:38

P2PKH:比特币的「哈希金库」与比特鹰的技术揭秘

摘要&#xff1a;P2PKH通过公钥哈希提升比特币隐私与易用性&#xff0c;比特鹰解析其双验证机制、历史地位及量子风险&#xff0c;揭示中本聪「以哈希代密钥」的设计智慧。 在比特币世界中&#xff0c;P2PKH&#xff08;Pay To Public Key Hash&#xff09;是承载万亿价值的「链…

作者头像 李华
网站建设 2026/7/22 4:47:27

Python编程入门:从“录取排名”题掌握排序算法与数据处理思维

1. 项目概述&#xff1a;从“录取排名”看编程入门的关键跨越最近在辅导一些刚接触编程的同学时&#xff0c;发现很多人卡在“实验三”这类题目上。题目本身可能叫“7-1 录取排名”&#xff0c;来自某个学校的Python程序设计课程。表面看&#xff0c;它考察的是排序、条件判断这…

作者头像 李华
网站建设 2026/7/22 4:43:55

科技反弹,空头平仓!

一&#xff0c; 今天上证指数反弹拉升 1.79%&#xff0c;盘面分化特别明显&#xff1a;3107 只股票上涨&#xff0c;2301 只股票下跌。一个多月前也经常出现这种指数涨、近一半个股走弱的行情&#xff0c;不过涨跌主线完全调换了。早前拉动大盘的是科技股&#xff0c;金融、…

作者头像 李华