剑指offer笔记(七) 第47题至第53题

本文记录了8道剑指Offer的Python解法,包括礼物的最大价值、最长无重复字符子串、丑数、首个只出现一次的字符、数组逆序对、两链表公共节点、查找数字1和缺失数字。涉及动态规划、字典操作、链表处理等技巧。
摘要由CSDN通过智能技术生成


前言

这次主要记录剑指offer的8道题,主要使用的语言是python,下面将对这8道题的一些感悟和知识点进行汇总!


提示:以下是本篇文章正文内容,下面案例可供参考 截图来源于LeetCode

一、JZ47 礼物的最大价值

在这里插入图片描述

  动态规划题目,由于只往右下移动,所以dp[j] 的情况由当前dp[j] 及上一刻 dp[j-1] 的最大值决定,之后加上 grid[i][j-1] 的结果。最后返回 dp[n] 即可。

以下为程序源码:
在这里插入图片描述

二、JZ48 最长不含重复字符的子字符串

在这里插入图片描述

  这道题动态规划不是特别容易理解,不过LC的K神讲解的太好了,可以点开链接学习一下。

以下为程序源码
在这里插入图片描述

三、JZ49 丑数

在这里插入图片描述

  没什么好说的,背诵!

以下为程序源码:
在这里插入图片描述

四、JZ50 第一个只出现一次的字符

在这里插入图片描述

  代码不多,这里collecyions.OrderedDIct()函数是该子类具有专门用于重新排列字典顺序的方法,其实就是不改变原来字符串s中各字符的顺序,没什么大用,我照着别人的LU下来的,可以学习一下!这道题的关键点就在于,开始的时候给字典中的每个字符一个True,一旦该字符重复则会变成不可逆的False,最后遍历得到仍未True的字符即可。

以下为程序源码:
在这里插入图片描述

五、JZ51 数组中的逆序对

在这里插入图片描述

  LC官方讲解特别赞,给出链接
以下为程序源码:
在这里插入图片描述

六、JZ52 两个链表的第一个公共节点

在这里插入图片描述

  挺简单的,画一画。

以下为程序源码:
在这里插入图片描述

七、JZ53 - 1 在排序数组中查找数字1

在这里插入图片描述

  双指针查找,so easy。

以下为程序源码:
在这里插入图片描述

八、JZ53 - 2 0~n-1中缺失的数字

在这里插入图片描述

  比上一题一样,换了一下,if判断条件,不多说了。

以下为程序源码:
在这里插入图片描述

九、总结

  一周写了4篇博客,加油!再弄一篇。杜甫的诗,是真的牛啊!尤其是《登高》,绝了!来默诵一下:
  风急天高猿啸哀,渚清沙白鸟飞回。
  无边落木萧萧下,不尽长江滚滚来。
  万里悲秋常作客,百年多病独登台。
  艰难苦恨繁霜鬓,潦倒新停浊酒杯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值