自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 《剑指offer》27、合法的pop序列

前言本来这个应该和之前的26、包含min功能的栈写在一起的,都是辅助栈的应用。不过26的代码比较长,所以还是分开了。本次题目的要求是:给出入栈序列push和一个出栈序列pop,判断pop序列是否合法。分析我们先上图说话通过图左的合法序列和图右的不合法序列,我们可以得出一个判断依据:1、如果下一个弹出的数字刚好是栈顶数字,那么直接弹出2、如果下一个弹出的数字不在栈顶,我们就要把压栈序列中还没有入栈的数字继续压栈,直到下一个弹出的数字刚好是栈顶数字,即回到13、如果压栈到穿序列仍然没有回到1,

2020-10-26 10:51:31 272

原创 R的绘图(二)——基本图形

图先欠着除了点线图以外,在实际的运用中还有许多其它基本图形,本篇笔记将简单介绍这些图形。就像本科毕业设计一样,虽然搞出了很高大上的设计,然而还是不得不把最基本的东西说道说道。条形图条形图可以说是基础图形里比较复杂的,变化最多的一种。为了阐述它的制作,我们还要载入vcd包,载入这个包的原因是1、我们可以使用里面的Arthritis数据集,这个数据集是很好的绘图材料;2、我们需要用它来绘制条形图的变形——荆棘图。条形图的核心函数是barplot(height)最简单的条形图我们先用table提取Ar

2020-10-24 19:47:45 795

原创 《剑指offer》26、包含min功能的栈

包含min功能的栈:要求设计一个栈,除了正常进出栈以外,还有一个输出最小值的功能。首先自然而然可以想到python自带的min函数……其实沿着min函数的思路走,如果我们想要搜索一个list的最小值,我们可以从左往右遍历,然后先找到前两个元素的较小者,再将其与第三个元素比较,得出更小者,再向后比较,以此类推。那么对本题也是类似,我们可以使用上述的判断方法,同时设置一个辅助栈,用于存放当前栈的最小值。设置辅助栈是因为,若最小值出栈了,最小值需要进行更新,因此需要辅助栈来保存次小值。基于这个思路,我们可以很

2020-10-22 10:39:35 99

原创 《剑指offer》25、矩阵的螺旋打印

题目要求是,给出一个N,要求螺旋输出N*N的矩阵:比如 N = 3,打印:1 2 38 9 47 6 5虽然很多说法都说不断判断边界条件的转换会使代码写得十分繁复。但其实这里有个trick,打印的方向始终是从左往右→从上往下→从右往左→从下往上的。那么我们只要先用一个list装填所有的数,用是否为0判断边界即可,这样用两层的while判断就能写出来。但写了一次,还是会很复杂……刚才其实说到:打印的方向始终是从左往右→从上往下→从右往左→从下往上的。所以可以想到递归,实际上这个递归相当好写。#

2020-10-21 10:11:11 129 1

原创 《剑指offer》23&24、树的子结构与镜像二叉树

二叉树基础关于二叉树的问题,请参考二叉树的预备知识,以及剑指offer之前的两道二叉树的题目。《剑指offer》预备知识-链表与二叉树《剑指offer》06&07、二叉树的重构与下一个结点树的子结构offer23的问题是给出两棵树A和B,判断B是否A的子结构(我们约定空树不是任何一棵树的子结构)涉及到树的结构问题,80%以上是递归。我们需要先把找子结构的思路写出来,然后再顺势写出递归。1、首先要判断AB是否空树2、然后要找到A的一个节点,使得它恰为B的根节点;这个节点就是递归的起点,

2020-10-20 10:53:01 174 1

原创 《剑指offer》17、判断正则式是否匹配

正则式匹配题目应该说,在《剑指offer》前半的题目中,正则式匹配无论是新颖程度还是难度都是比较高的一题。题目给出一个字符串和一个带有“.”与“ * ”的正则表达式,求问这个表达式和原字符串是否匹配。其中的匹配规则是:字符 . 表示任意一个字符,而“” * “”表示它前面的字符可以出现任意次(包含0次)举个例子:字符串"aaa"与模式"a.a"和"ab*ac*a"均匹配字符串"aaa"与"aa.a"和"ab*a"均不匹配分析题目有点绕,但是即便没接触过SQL的朋友应该也是接触过正则表达式的

2020-10-16 10:57:38 244

原创 《剑指offer》16&19&20&22、链表四则:删除节点、倒数第k个节点、环的入口、有序链表合并

前言《剑指offer》的16&19-22连续出现了多个链表类的题目,比之前的难度要稍微高一些。这时候一定要画图做分析,达到事半功倍的效果。关于链表的结构请参考:《剑指offer》预备知识-链表与二叉树我会直接调用里面定义的这个链表的类之前还出现了两道典型题目:05的链表反向输出和21的链表反转,可以参考这个笔记:《剑指offer》05&21、链表反向输出与反转关于链表其实网上有海量的文章,但是到了这份上相信对链表本身大家已经相当熟悉,只是一些思路不能很快的理清,也没有很clea

2020-10-15 14:03:50 162

原创 《剑指offer》15、打印1到最大的n位数

打印1到最大的n位数题目的意思是,输入一个n,然后从1开始输出,2,3……直到10^n-1。当n<10的时候自然能一次循环遍历。当n更大的时候,就要考虑字符串的组合了。这题考察细节和字符的处理,如果做过高精度加法的话,实在没什么难度……直接给代码了。# offer15-solutionclass Solution: def Print1ToMaxOfNDigits(self, n): if n <= 0: return n

2020-10-14 09:47:20 103

原创 《剑指offer》12、剪绳子(动态规划与贪心)

剪绳子offer12给出的是一个数学类的问题,现有一段长度为n>1的绳子,要将其剪成m>1段,m,n均为整数,问如何剪才能使得剪断的每一段绳子的长度乘积最大。比方说,有一段长度为5的绳子,那么有如下的剪法:[4,1],[3,1,1],[3,2],[2,2,1],[2,1,1,1],[1,1,1,1,1]其中[3,2]有最大的乘积6.动态规划关于动态规划,展开讲的话就没完没了了。我给出了两个知乎上的链接和一个cnblog上的介绍,我觉得这三个地儿讲得足够齐全了。当然,我们举一个非常简

2020-10-13 10:46:53 285

原创 《剑指offer》11、矩阵路径(回溯法)

矩阵路径offer11将给出一个字符矩阵以及一个“路径”,试问矩阵中是否存在这样的一个路径。以下面的一个矩阵为例,它存在路径REALITY,但不存在路径FAKE:回溯法这里必然涉及简单的回溯法解题了。回溯法是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。它是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的

2020-10-10 10:19:17 118

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除