LenleDaytoy

2020年4月25日

剑指offer-19.正则表达式匹配

摘要: 题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均 阅读全文

posted @ 2020-04-25 19:11 LenleDaytoy 阅读(158) 评论(0) 推荐(0) 编辑

2020年4月24日

剑指offer-10.斐波那契数列

摘要: 题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 解题思路:斐波那契数列第n项的值为前两项的和,程序在实现的时候可以采用循环的方式,并且将已经的计算出的中间项保存起来避免重复运算。 具体来说用两个变量 fb_1,fb_2最初保存第 阅读全文

posted @ 2020-04-24 21:24 LenleDaytoy 阅读(118) 评论(0) 推荐(0) 编辑

剑指offer-3.数组中的重复数字

摘要: 题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 解题思路: .从头开始 阅读全文

posted @ 2020-04-24 16:50 LenleDaytoy 阅读(145) 评论(0) 推荐(0) 编辑

剑指offer-7.重建二叉树

摘要: 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路: 1.前序遍历序列的第一个就是根节点 2. 阅读全文

posted @ 2020-04-24 15:12 LenleDaytoy 阅读(97) 评论(0) 推荐(0) 编辑

2020年4月22日

剑指offer-35复杂链表的复制

摘要: 题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 1.三步法 第一步:在复杂链表的原始节点N后面创建对应节点N' 第二步:设置复 阅读全文

posted @ 2020-04-22 15:31 LenleDaytoy 阅读(106) 评论(0) 推荐(0) 编辑

2020年4月21日

剑指offer-25.合并两个排序列表

摘要: 1.递归法 1 class Solution: 2 # 返回合并后列表 3 def Merge(self, pHead1, pHead2): 4 # write code here 5 if pHead1 == None: 6 return pHead2 7 if pHead2 == None: 8 阅读全文

posted @ 2020-04-21 11:30 LenleDaytoy 阅读(120) 评论(0) 推荐(0) 编辑

2020年4月20日

剑指offer-22.链表中倒数第k个结点

摘要: 题目:输入一个链表,输出该链表中倒数第k个结点。 1.指针法 1 class Solution: 2 def FindKthToTail(self, head, k): 3 # write code here 4 if not head or k==0 or k<0: #等号与赋值符号区分 5 re 阅读全文

posted @ 2020-04-20 22:18 LenleDaytoy 阅读(91) 评论(0) 推荐(0) 编辑

剑指offer-23.链表中环的入口节点

摘要: 题目:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 第一步:判断链表是否有环 使用快慢指针法:两个节点从头节点出发,快指针一次走两步,慢指针一次走一步,如果快慢指针相遇,则链表有环 第二步:找入口节点 思路一:使用两个指针,第一个指针位于第一个节点,第二个节点置于快慢节 阅读全文

posted @ 2020-04-20 21:27 LenleDaytoy 阅读(122) 评论(0) 推荐(0) 编辑

剑指offer-6从尾到头打印链表

摘要: 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 1.利用列表 class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here ar 阅读全文

posted @ 2020-04-20 16:12 LenleDaytoy 阅读(116) 评论(0) 推荐(0) 编辑

剑指offer-24.反转链表

摘要: 反转链表(实现链表的逆序) 法一:就地逆序。使用三个指针pre,cur和next表示前驱节点,当前节点和后继节点。主要通过将当前节点的下一个指向赋值为前驱节点完成逆序。(cur.next=pre)【或者说是在遍历的时候,将当前结点的尾结点和前一个结点的替换】时间复杂度为O(n),改变了链表结构。 法 阅读全文

posted @ 2020-04-20 14:50 LenleDaytoy 阅读(88) 评论(0) 推荐(0) 编辑

导航