每日算法之跳台阶

JZ69 跳台阶 描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 数据范围:1 \leq n \leq 401≤n≤40 要求:时间复杂度:O(n)O(n) ,空间复杂度: O(1)O(1) 方法1 递归 思路 题目分 ...

每日算法之二叉搜索树的最近公共祖先

JZ68二叉搜索树的最近公共祖先 描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 1.对于该题的最近的公共祖先定义:对于有根树T的两个节点p、q,最近公共祖先LCA(T,p,q)表示一个节点x,满足x是p和q的祖先且x的深度尽可能大。在这里,一个节点也可以是它自己的祖先. 2.二 ...

每日算法题之构建乘积数组

JZ66构建乘积数组 描述 给定一个数组 A[0,1,...,n-1] ,请构建一个数组 B[0,1,...,n-1] ,其中 B 的元素 B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1](除 A[i] 以外的全部元素的的乘积)。程序中不能使用除法。(注意:规定 ...

爱上算法,迷人的两度搜索,爱上算法,迷人的两度搜索,深度优先(DFS)和广度优先(BFS)

迷人的两度搜索 1、BFS和DFS 深度优先搜索算法(DFS)和广度优先搜索算法(BFS)是一种用于遍历或搜索树或图的算法,在搜索遍历的过程中保证每个节点(顶点)访问一次且仅访问一次,按照节点(顶点)访问顺序的不同分为深度优先和广度优先。 1.1、深度优先搜索算法 深度优先搜索算法(Depth-Fi ...

每日算法之不用加减乘除做加法

JZ65不用加减乘除做加法 描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 数据范围:两个数都满足 -10 \le n \le 1000−10≤n≤1000 进阶:空间复杂度 O(1)O(1),时间复杂度 O(1)O(1) 方法一:位运算非递归(推荐使用) 思路 ...

每日算法题之买卖股票的最好时机(一)

买卖股票的最好时机(一) 描述 假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益 1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天 2.如果不 ...

每日算法题之扑克牌顺子

JZ61 扑克牌顺子 描述 现在有2副扑克牌,从扑克牌中随机五张扑克牌,我们需要来判断一下是不是顺子。 有如下规则: 1. A为1,J为11,Q为12,K为13,A不能视为14 2. 大、小王为 0,0可以看作任意牌 3. 如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出f ...

每日算法题之二叉树的深度

JZ55 二叉树的深度 描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。 方法1 递归 思路: 最大深度是所有叶子节点的深度的最大值,深度是指树的根节点到任一叶子节点路径上节点的数量,因此从根节点每 ...

每日一题算法

数字在升序数组中出现的次数 描述 给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数 解析 排序数组的查找问题首先考虑二分法 使用二分法找到左右边界的位置,然后长度一减即可 解题思路: 排序数组的查找问题首先考虑使用 二分法 解决,其可将 遍历法 的 线性级别 ...

算法笔记1

笔记1 用两个栈实现队列 1、进栈时候进入第一个栈内 2、出栈时将栈1的内容再次压入栈2中,即正向 3、如果栈2没有元素,弹栈需要栈1进栈 4、如果栈2有元素,即上一次进栈元素没有全部弹栈,直接弹栈 package esay.jz9用两个栈实现队列; ​ import java.util.Stack ...

插值查找算法

插值查找算法 插值查找原理介绍: ​ 插值查找算法类似于二分查找,不同的是插值查找每次从自适应 mid 处开始查找。 2.将折半查找中的求 mid 索引的公式 , low 表示左边索引 left, high 表示右边索引 right. key 就是前面我们讲的 findVal int mid = l ...

Elasticsearch Analyzer 内置分词器

Elasticsearch Analyzer 内置分词器 篇主要介绍一下 Elasticsearch中 Analyzer 分词器的构成 和一些Es中内置的分词器 以及如何使用它们 前置知识 es 提供了 analyze api 可以方便我们快速的指定 某个分词器 然后对输入的text文本进行分词 帮 ...