守得云开见月明

系统技术链 QQ:598691918

【---------剑指offer刷题目录汇总---------】

前言      从今天开始在牛客刷剑指offer,希望每天打卡几个算法,提高自己的编程水平。在CSDN做一下记录,随时更新,一起学习吧。 目录大全 数组 剑指offer ( 一 ):二维数组中的查找 剑指offer ( 六 ):旋转数组的最小数字 剑指offer ( 十...

2019-06-02 22:26:17

阅读数 35

评论数 0

【---------算法目录导航---------】

前言      每篇文章带目录结构太费劲了,这里统一写个导航目录。 算法目录导航 基础算法 排序 快速排序 归并排序 堆排序 插入排序 选择排序 冒泡排序 希尔排序 桶排序 计数排序 基数排序 查找 二分查找及变种 ...

2019-05-23 19:52:35

阅读数 14

评论数 0

数值的整数次方

1.本题知识点    位运算,二分快速幂 2. 题目描述   给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 3. 思路    需要考虑的点:    ① 指数的正负,我们可以先用绝对值,然后求出指数次方之后的结果,如果是负数取倒数即可...

2019-07-15 16:40:11

阅读数 2

评论数 0

二进制中1的个数

1.本题知识点    位运算 2. 题目描述   输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 3. 思路    一个巧妙的规律:一个整数减去1,再和原证书与运算,会把原整数的最右边的1变为0,其它位不变,所以有多少个1就循环几次。    比如,原整数12的二进制形式为110...

2019-07-14 22:16:36

阅读数 2

评论数 0

递归之变态跳台阶

1.本题知识点    数学归纳法,规律 2. 题目描述    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 3. 思路    我就举例看看n=1,2,3,4时,有1,2,4,8种跳法,即2^n-1次方,总的跳法就把它们加起来。别告诉...

2019-07-12 15:04:27

阅读数 7

评论数 0

递归之跳台阶

1.本题知识点    递归 2. 题目描述    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 3. 思路    1级时,1种;2级时,2种;3级往后符合斐波那契数列。    Java 版: public class Sol...

2019-07-12 14:35:42

阅读数 8

评论数 0

递归之裴波那契数列

1.本题知识点    递归,循环,DP 2. 题目描述    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 3. 思路    如图,可以用递归自顶向下计算,或者自底向上计算。    Java 递归自顶...

2019-07-12 14:16:41

阅读数 8

评论数 0

回溯法之机器人的运动范围

1.本题知识点    回溯法,矩阵 2. 题目描述    地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7...

2019-07-12 11:03:51

阅读数 9

评论数 0

回溯法之矩阵中的路径

1.本题知识点    回溯法,矩阵 2. 题目描述    请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 ...

2019-07-11 15:09:40

阅读数 9

评论数 0

栈之栈的压入、弹出序列

1.本题知识点    栈 2. 题目描述    输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压...

2019-07-10 22:30:09

阅读数 8

评论数 0

栈之包含min函数的栈

1.本题知识点    栈 2. 题目描述    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 3. 思路    此题需要借助辅助栈,存储最小值,具体过程看图解:    如上图, 每次压入数据栈时,需要比较辅助栈中最小值(末尾元素)的大小...

2019-07-10 15:59:14

阅读数 9

评论数 0

栈之用两个栈实现队列

1.本题知识点    栈,队列 2. 题目描述    用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 3. 思路    这个思路比较简单,首先明白队列是先进先出,我们用两个栈stack1 stack2模拟即可,stack1负责队列的push,sta...

2019-07-10 14:25:33

阅读数 12

评论数 0

二叉搜索树之二叉搜索树的第k个结点

1.本题知识点    二叉树,递归 2. 题目描述    给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 3. 思路    二叉搜索树的特性,中序遍历结果为从小到大排序的。    Java版本: /* pu...

2019-07-10 14:01:50

阅读数 9

评论数 0

二叉搜索树之二叉搜索树与双向链表

1.本题知识点    二叉树,递归 2. 题目描述    输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 3. 思路    感觉剑指offer上的第二张图不是很好理解啊,其实还是那句话,二叉树的递归主逻辑只需要考虑...

2019-07-10 13:29:24

阅读数 11

评论数 0

二叉搜索树之二叉搜索树的后序遍历序列

1.本题知识点    二叉树,递归 2. 题目描述    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 3. 思路    二叉搜索树BST感觉比二叉树要简单,因为它是有规律的,二叉搜索树的左子树都比根节...

2019-07-08 16:41:30

阅读数 12

评论数 0

二叉树之序列化二叉树

1.本题知识点    二叉树,递归 2. 题目描述    请实现两个函数,分别用来序列化和反序列化二叉树 3. 思路    这题其实挺开放的,没规定具体的序列化规则,我们可以使用先序遍历的方式,    ① 序列化规则:#表示空,节点之前用,分隔。    ② 反序列化规则:相当于重建二叉树,可以参...

2019-07-07 22:38:34

阅读数 9

评论数 0

二叉树之把二叉树打印成多行

1.本题知识点    二叉树 2. 题目描述    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 3. 思路    考察广度优先遍历,需要用到2个队列。思路跟之字打印类似。    Java版本: import java.util.ArrayList; import java...

2019-07-05 11:38:05

阅读数 10

评论数 0

二叉树之按之字形顺序打印二叉树

1.本题知识点    二叉树,栈 2. 题目描述    请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 3. 思路    关键点: 用两个栈分别保存奇数层和偶数层的节点。    如上图,打印顺序...

2019-07-05 11:05:37

阅读数 10

评论数 0

二叉树之对称的二叉树

1.本题知识点    二叉树 2. 题目描述    请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 3. 思路    如图,对称条件:    ① 根节点及其左右子节点相同。    ②左子节点的左子节点等于右子节点的...

2019-07-04 13:56:15

阅读数 9

评论数 0

二叉树之二叉树的下一个结点

1.本题知识点    二叉树 2. 题目描述    给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 3. 思路    中序遍历:d,b,h,e,i,a,f,c,g    ① 如果节点有右子树,它的下一个节点...

2019-07-03 14:23:07

阅读数 12

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭