
(python)《剑指offer刷题笔记》
莫叶何竹
微信公众号:莫叶何竹
个人主页:http://myhz0606.com/
展开
-
(python)《剑指offer》面试题4:二维数组中的查找
题目 在一个二维数组中,每一行按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否有该整数,并返回索引。 例如,判断下列数组是否包含7,并返回索引 思路: 我们发现右上角的元素是该行的最大,该列的最小。若要查找的数字m,大于右上角数字n,说明这个数不在第一行,删除第一行;若m<n,说明这个数不在最后一列,删除最后一...原创 2019-06-19 18:50:40 · 287 阅读 · 0 评论 -
(python)《剑指offer》面试题5:替换空格
题目 实现一个函数,把字符串的每个空格替换成“%20”,例如,输入“We are happy!”,输出“We%20are%20happy!” 1. 直觉做法 #直觉做法1:使用内置函数 def replace_space(string): return '%20'.join(string.split(' ')) 2.方案二:开辟新的存储空间 def repla...原创 2019-06-20 21:04:23 · 248 阅读 · 0 评论 -
(python)《剑指offer》面试题3: 数组中的重复数字
面试题3: 数组中的重复数字 在长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但是不知道有几个数字重复了。 请找出数组中的重复数字。如输入长度为7的数组【2,3,1,0,2,5,3】,输出【2,3】 #coding = utf-8 def find_repeat_array_version1(ls): '''使用双层循环''' ## 时间复杂度O(n^2...原创 2019-06-18 19:14:20 · 220 阅读 · 0 评论 -
(python)《剑指offer》面试题7:重建二叉树
题目:重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,重建该二叉树。假设输入的前序遍历和中序遍历的结果都不包含重复数字。 例如:输入 前序遍历【1,2,4,7,3,5,6,8】 中序遍历【4,7,2,1,5,3,8,6】, 则重建二叉树 【1, 2, 3, 4, 5, 6, 7, 8】 题目分析 对于前序遍历,其遍历规则是 根节点→左子树→右子树 对于中序遍历, 其遍历规则是 左子树→根节点→...原创 2019-07-02 19:00:10 · 358 阅读 · 0 评论 -
(python)《剑指offer》面试题6:从头到尾打印链表
题目 输入一个链表的头结点,从尾到头反过来打印出每个节点的值 代码 # 从头到尾打印链表 ## 定义链表节点的类 class Node(object): # 节点有两个基础属性,1:该节点的值,2:下一个节点的地址 def __init__(self, item): self.item = item self.next = None def tr...原创 2019-06-27 14:58:00 · 303 阅读 · 0 评论