- 博客(12)
- 收藏
- 关注
原创 Chrome安装elasticsearch-head插件
Chrome安装elasticsearch-head插件1.下载并解压elasticsearch-head.rar链接:(https://pan.baidu.com/s/17SNNeXGDIX3y7AJ2WfwXaw2.chrome扩展程序界面加载已解压的扩展程序3.重启chrome后右上角插件图标为插件入口
2021-01-19 15:43:48
283
原创 Java 解决剑指offer 最小的k个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。题目解析这道题最简单的思路是把数组排序,排序的时间复杂度为O(NlogN)。但是我们有更好得解决方案。1.时间复杂度为O(n),但需要改变数组。我们将思路放到快速排序上,在快速排序的Partition中,我们每次选择一个元素,将数组中小于这个元素的值放在这个元...
2019-09-08 22:20:51
120
原创 常用排序算法详解
选择排序选择排序不断选择剩余元素中的最小者并将其归位:首先,找到是数组中最小的那个元素,其次,将它和数组的第一个元素交换位置。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。对于长度为N的待排序数组,选择排序需要大约N2/2次比较和次交换。选择排序一共进行N次选择,所以总的交换次数是N,因此,算法的时间效率取决于总的比较次数。每次选择过程,...
2019-09-04 21:42:38
485
原创 Java 解决剑指offer 字符串排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路采用动态规划思想,我们可以尝试将问题分解为一个字符加上“余下字符所有排列”的思路进行解题。例如字符串abcb,我们可以将...
2019-09-02 21:23:39
146
原创 Java解决剑指offer 从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印题目解析按层打印的顺序第一个应该打印的是根节点8,为了能够打印根节点8的两个子节点,我们应在打印8时将节点7、6依次放入一个容器里。然后按顺序打印容器里的节点,打印节点7时,我们应将节点7的子节点5、4依次加入容器中。依次类推。这个容器就是我们常说的先进先出的队列。代码如下所示,Java代码import java.util...
2019-09-01 16:06:44
88
原创 Java解决剑指offer 包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。题目分析看到题目,第一反应就是使用一个整数来保存栈中的最小元素,这样可以时间入栈(push)函数、和min函数的时间复杂度为O(1),但却不能保证出栈(pop)函数的时间复杂度,因为当最小元素出栈后,我们不得不遍历栈来寻找次小值元素(即当前新的最小值元素),因此这不是我们想要的解法。...
2019-08-31 17:34:39
92
原创 Java解决剑指offer 树的子结构问题
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题目分析要查找B是不是A的子结构,我们可以采用如下步骤:1.查找树A中与树B根节点值相同的结点R;2.判断树A中以R结点的为根的子树,是否包含与树B相同的结构。上面两步可以转化为递归操作,代码如下。Java代码/**public class TreeNode { int va...
2019-08-31 16:08:43
130
原创 JAVA解决剑指offer 青蛙跳台阶问题
题目前言我们做算法题,并不是为了解决问题,而是为了最好地解决问题。题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。题目分析当台阶只有1级时,显然只有一种跳法,当台阶只有2级时,显然只有有两种跳法。当台阶有n(n>2)级及以时,我们记为有f(n)中跳法。此时第一次跳的时候显然有两种跳法,即跳1级和跳2级。...
2019-08-29 20:46:56
137
原创 Java解决剑指offer回溯问题 矩阵中的路径
题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 下面3*4矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出),但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中...
2019-08-29 20:06:44
110
原创 Java解决剑指offer 用两个栈解决队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题目分析通过一个具体的例子进行分析。首先插入元素a,不妨将它插入stack1,再压入元素b和c。此时stack1有元素{a,b,c},stack2为空。这时候我们试着从队列中删除队首元素a。元素a位于stack1的栈底,因此需要先将stack1内的元素弹出再压入stack2。操作完成后,stac...
2019-08-28 20:32:18
99
原创 Java解决重建二叉树算法题
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路由二叉树的前序遍历序列可知,1 为二叉树的根节点。由二叉树的中序遍历序列可知,1之前的结点,即4、7、2为其左子树的中序遍历序列,1之后的结点...
2019-08-28 16:49:28
157
原创 Java解决 二维数组中的查找问题
Java解决 二维数组中的查找问题二维数组中的查找题目描述解题思路_**注意**_参考代码(Java)二维数组中的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如在如下数组中查找7,则返回true,查找5,则返回false。1 ...
2019-08-27 11:14:09
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人