剑指offer
張濤
大三 后端
https://github.com/ZTCooper
展开
-
《剑指offer》面试题25:合并两个排序的链表
题目描述 知识点:列表、递归 思路一:递归 pMergedHead指向头节点值小的链表头,递归对剩下两段链表合并 # -*- coding:utf-8 -*- class ListNode: def __init__(self, x): self.val = x self.next = None class Solution...原创 2020-02-09 15:03:30 · 181 阅读 · 0 评论 -
《剑指offer》面试题32:从上往下打印二叉树
题目描述 层次遍历: 二叉树的层次遍历,需要借助队列,根节点入队,每打印一个节点,一个节点出队,并将其左右子树入队,直到队列为空原创 2020-02-07 22:42:42 · 150 阅读 · 0 评论 -
《剑指offer》面试题22:链表中倒数第k个节点
题目描述 使用前后指针即可,前指针先走k-1步,然后两个指针一起移动,当前指针指向最后一个节点,后指针原创 2020-02-07 22:29:37 · 163 阅读 · 0 评论 -
《剑指offer》面试题15:二进制中1的个数
题目描述 思路一: 使用Python bin()函数转换为二进制,调用.count(‘1’)得出“1”的个数,注意负数要与上0xffffffff变为补码 # -*- coding:utf-8 -*- class Solution: def NumberOf1(self, n): # write code here return bin(n & 0x...原创 2020-02-07 21:38:33 · 141 阅读 · 0 评论 -
《剑指offer》面试题10:斐波那契数列、青蛙跳台阶、矩形覆盖
题目描述 思路二:原创 2020-02-05 14:48:47 · 186 阅读 · 0 评论 -
《剑指offer》面试题11:旋转数组的最小数字
题目描述 知识点:二分查找 思路一: 顺序遍历,当后一个数比前一个数小时,则为最小数 # -*- coding:utf-8 -*- class Solution: def minNumberInRotateArray(self, rotateArray): # write code here for i in range(len(rotateArray)):...原创 2020-02-05 14:09:33 · 115 阅读 · 0 评论 -
《剑指offer》面试题9:用两个栈实现一个队列
题目描述 思路: 两个栈Stack_A,Stack_B push: 无论什么情况都压入A pop: 当B中有元素时:直接栈顶出栈; 当B为空栈时:将A中元素逐个出栈压入B,B栈顶再出栈 代码: # -*- coding:utf-8 -*- class Solution: def __init__(self): self.Stack_A = [] self.S...原创 2020-02-05 10:56:23 · 146 阅读 · 0 评论 -
《剑指offer》面试题7:重建二叉树
题目描述 pre为先序遍历序列,tin为中序遍历序列 pre的第一个元素为根节点的值,tin以root为分界点 root的索引为i tin前半部分[:i]为左子树,后半部分[i+1:]为右子树 pre[1:i+1]为左子树,[i+1:]为右子树 递归构造 ...原创 2020-02-04 23:27:33 · 143 阅读 · 0 评论 -
《剑指offer》面试题4:二维数组中的查找
题目描述 最容易想到的思路,行列双重遍历查找 # -*- coding:utf-8 -*- class Solution: # array 二维列表 def Find(self, target, array): # write code here for row in array: for num in row: ...原创 2020-02-04 21:24:41 · 127 阅读 · 0 评论