力扣
念书就像坐牢
万事皆有迹可循
展开
-
剑指 Offer09.用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]["CQueue","deleteHead","appendTail","appendTail",".原创 2021-02-07 20:51:11 · 181 阅读 · 0 评论 -
剑指 Offer07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]思路递归,注意两个节点参数和一个边界条件,有时间写推理过程代码 size = len(preorder) def recur(root,left,right): if left > right:retu原创 2021-02-04 15:47:56 · 118 阅读 · 0 评论 -
剑指offer05.替换空格
题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例输入:s = "We are happy."输出:"We%20are%20happy."思路比较判断,需要注意的是在java和python中,字符串被设置为不可变类型,需要重新初始化一个列表类型,依次复制,利用join函数将列表转换为字符串。或者直接利用python的replace函数replace(" ","%20")或者return ''.join(('%20' if c==' ' else c for c in s)原创 2021-02-03 23:47:09 · 120 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定原创 2021-02-02 21:29:34 · 113 阅读 · 1 评论 -
剑指offer03
题目:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 思路把每个数换到对应的位置,比如把2放到nums[2]位置交换之前判断,如果需要换的位置就是数本身,则返回,比如nums[2] =2, 就return 2python代码class Solution(object):原创 2021-02-01 17:00:24 · 123 阅读 · 0 评论