
剑指offer
Tonywu2018
积少成多
展开
-
剑指offer(八):位运算篇(python)
位运算是把数字用二进制表示之后,对每一位上0或者1的运算。二进制的位运算有5种:与、或、异或、左移和右移。与运算两个数都为1时,结果为1,与运算符用&表示;或运算两个数其中一个为1时,结果为1,或运算符用|表示;异或运算两个数不同时,结果为1,异或运算符用^表示;左移运算是将某数的二进制左移,右边补0,如2<<3,相当于将2的二进制表示左移3位,在数学上它的效果和2x2^3等同...原创 2019-07-19 14:23:37 · 276 阅读 · 0 评论 -
剑指offer(五):链表篇(python)
这篇文章是关于链表的专题文章,总结的是剑指offer中的链表的相关知识。有关链表的具体知识可以看这篇文章。 引用维基百科中的话:链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表(数组)快得多,但是查找一...原创 2019-07-08 23:24:21 · 305 阅读 · 0 评论 -
剑指offer(四):回溯篇(python)
借用百度百科中的话:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 回溯算法是一种常用的算法,听上去它...原创 2019-07-02 20:41:37 · 458 阅读 · 0 评论 -
剑指offer(七):深度优先搜索篇(python)
1. 迷宫问题 迷宫问题是典型的搜索问题,假设有下图所示的迷宫: 给定入口和出口,找到走出迷宫的路径(路径可能不止一条)。对于迷宫问题,先将迷宫数字化,用0表示可以通过的区域,用1表示墙,那么上面的迷宫可表示成下面的二维数组: ...原创 2019-07-16 16:11:35 · 464 阅读 · 0 评论 -
剑指offer(三):字符串篇(python)
字符串是面试中的高频题目,很多面试题目都会或多会少的考察字符串的有关内容,本篇文章是总结整合了剑指offer中的字符串相关的面试题,详细内容如下: 1. 剑指offer第5题:替换空格 这道题的题目描述和代码实现见下图: 这道题目有三种解法,其中第1种用到了replace函数,只需一行代码就完成了实现,显然面试中这种方法是不可行了;第2种方法用到了python中正则表达式,...原创 2019-06-28 15:21:16 · 228 阅读 · 0 评论 -
剑指offer(二):设计模式篇(python)
本部分内容时设计模式篇,设计模式的种类比较多,而且代码也比较复杂,但是面试时间有限,多数设计模式的题目不适合作为面试题,但是单例模式的代码相对简答,比较适合作为面试题,下面的题目就是关于单例模式的面试题。 剑指offer第2题:实现Singleton模式 这道题目的题目描述和代码实现见下图: 可以看到,在测试部分,创建了两个实例s1和s2,但是两个实例的地址值是一样的,这就完...原创 2019-06-24 15:42:20 · 215 阅读 · 0 评论 -
剑指offer(一):数组篇(python)
最近准备找工作,一直在学习/刷一些面试题,目前在看剑指offer这本书,想对最近看的面试题做一些总结,整个系列都是用python语言实现的,写的有什么不到位的地方多多包涵同时欢迎指正,本系列不是按照原书中的章节从面试题1-面试题68的顺序来写的,而是将题目分成了数组、字符串、树结构、链表、位运算、队列、动态规划等不同的专题。 数组作为一种基本的数据结构,其在面试中考察的几率很高,有关数组的可考察...原创 2019-06-24 15:38:41 · 460 阅读 · 0 评论 -
剑指offer(六):栈和队列篇(python)
栈和队列是非常常见的数据结构,且栈和队列都属于线性表;队列在广度优先搜索中应用广泛,而栈时实现深度优先搜索的一种方式,且递归的底层实现实际上就是栈。栈和队列的内容比较简单,但是这并不影响其重要程度。这个专题主要是总结剑指offer中栈和队列相关的题目。 1. 剑指offer第9题:两个栈实现队列 这道题的题目描述和代码实现见下图: 2. 剑指offer第30题:包含min函数的...原创 2019-07-18 12:55:53 · 228 阅读 · 0 评论