- 博客(347)
- 收藏
- 关注
原创 剑指 Offer 16. 数值的整数次方
题目实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是
2020-10-23 10:46:36
180
原创 剑指 Offer 15. 二进制中1的个数
题目请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串000000000
2020-10-22 11:14:59
171
原创 剑指 Offer 14- II. 剪绳子 II
题目给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 ×
2020-10-22 10:34:42
342
原创 剑指 Offer 14- I. 剪绳子
题目给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 ×
2020-10-21 17:34:43
250
原创 剑指 Offer 13. 机器人的运动范围
题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:输入:m
2020-10-21 17:14:46
241
原创 剑指 Offer 12. 矩阵中的路径
题目请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入这个格子。示例 1:输入:board = [[“A”,“B”,“C”,“E”]
2020-10-21 15:55:18
184
原创 剑指 Offer 11. 旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-
2020-10-21 10:57:56
175
原创 剑指 Offer 10- II. 青蛙跳台阶问题
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/qing-wa-
2020-10-20 18:53:35
186
原创 剑指 Offer 10- I. 斐波那契数列
题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出:5提示:0
2020-10-20 17:53:23
224
1
原创 剑指 Offer 09. 用两个栈实现队列
题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入: [“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTai
2020-10-20 11:00:18
216
2
原创 剑指 Offer 07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:限制:0 <= 节点个数 <= 5000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof解题思路前序遍历,根
2020-10-20 10:04:45
195
原创 剑指 Offer 06. 从尾到头打印链表
题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof解题思路基本思路是使用递归法,方法的递归其实本质上就是一个栈,最先执行的方法最后执行完成,最后执行的方法最先执行完成
2020-10-19 18:00:13
172
原创 剑指 Offer 34. 二叉树中和为某一值的路径
题目输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 sum = 22,返回:提示:节点总数 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof解题思路基本思想就是使用回溯法+dfs(深度优先遍历)
2020-10-19 17:36:23
144
原创 剑指 Offer 33. 二叉搜索树的后序遍历序列
题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树:示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true提示:数组长度 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou
2020-10-19 14:40:14
171
原创 剑指 Offer 32 - III. 从上到下打印二叉树 III
题目请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof解题思路本质上还是
2020-10-19 09:17:29
156
原创 剑指 Offer 32 - II. 从上到下打印二叉树 II
题目从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],返回其层次遍历结果:提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof解题思路本质还是二叉树的层序遍历,使用队列解决代码/** * Definition fo
2020-10-16 17:47:57
240
1
原创 剑指 Offer 32 - I. 从上到下打印二叉树
题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],返回:[3,9,20,15,7]提示:节点总数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof解题思路本质上就是二叉树的层序遍历,使用队列解决注意点:层序遍历获取到的值事先不知道si
2020-10-16 17:31:21
336
4
原创 剑指 Offer 28. 对称的二叉树
题目请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3示例 1:输入:root = [
2020-10-16 15:49:00
186
1
原创 剑指 Offer 27. 二叉树的镜像
题目请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7 / \ / \1 3 6 9镜像输出: 4 / \ 7 2 / \ / \9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-shu-de-
2020-10-16 11:40:56
134
原创 剑指 Offer 05. 替换空格
题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”限制:0 <= s 的长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof解题思路java中字符串不可变,使用遍历的思想代码class Solution { public String re
2020-10-16 11:18:57
132
原创 为什么重写equals()需要同时重写hashcode()?源码角度分析以及重写场景分析
jdk1.8 Object源码 /** * Returns a hash code value for the object. This method is * supported for the benefit of hash tables such as those provided by * {@link java.util.HashMap}. * <p> * The general contract of {@code hashC
2020-10-16 11:01:09
210
原创 剑指 Offer 04. 二维数组中的查找
题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]来源:力扣(LeetCode)链接:https://
2020-10-15 19:19:28
185
1
原创 剑指 Offer 03. 数组中重复的数字
题目找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入: [2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-
2020-10-15 17:49:06
238
原创 剑指 Offer 26. 树的子结构
题目输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \1 2给定的树 B: 4 /1返回 t
2020-10-15 11:16:43
164
1
原创 leetcode分类整理
剑指offer剑指 Offer 68 - I. 二叉搜索树的最近公共祖先剑指 Offer 68 - II. 二叉树的最近公共祖先二叉树剑指 Offer 68 - I. 二叉搜索树的最近公共祖先剑指 Offer 68 - II. 二叉树的最近公共祖先
2020-10-14 17:52:08
1155
原创 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
题目给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出: 6解释: 节点
2020-10-14 17:40:57
164
原创 剑指 Offer 68 - II. 二叉树的最近公共祖先
题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5和节
2020-10-14 11:16:54
195
2
原创 Elasticsearch-复合查询之bool查询
前言本文基于elasticsearch7.3.0版本格式Elasticsearch bool查询对应Lucene BooleanQuery, 对应格式如下{ "query":{ "bool":{ "must":[ ], "should":[ ], "must_not":[ ], "filter":[
2020-07-20 17:41:53
2321
原创 Elementui中日期选择器的使用
准备这里使用了moment.js关于moment.js的使用,请看Vue项目中使用moment.js日期选择器的使用首先定义一个子组件DatePicker.vue<template> <el-form-item :label="label" label-width="80px"> <el-date-picker v-model="date" :picker-options="pickerOptions" type="da
2020-07-09 11:13:35
3464
原创 队列
前言本博客是学习韩顺平老师的数据结构与算法教程后记录的队列介绍队列是一个有序列表,可以用数组或是链表来实现遵循先入先出的原则,即:先存入队列的数据要先取出,后存入的要后取出使用数组实现队列class ArrayQueue { /** * 队列头 */ private int front; /** * 队列尾 */ private int rear; /** * 数组总长度 */ pr
2020-06-30 20:22:34
228
原创 稀疏数组
概念稀疏数组是一个十分有效的存储结构,在特定场景下能够节省存储空间使用场景当一个数组中大部分元素是0,或为同一个值的时候,可以使用稀疏数组来保存该数组比如:记录围棋对战信息记录地图信息记录表格信息结构稀疏数组包括两部分第一部分是稀疏数组的第一行数据,里面记录了原二维数组的总行数,总列数和总有效数据的数量第二部分是稀疏数组除第一行以外的数据,里面记录了原二维数组的行,列和有效值代码实现package com.ahut.userservice;/** * desc :
2020-06-29 17:49:06
267
原创 Elasticsearch-edge_ngram和ngram的区别
前言本文基于elasticsearch7.3.0版本说明edge_ngram和ngram是elasticsearch内置的两个tokenizer和filter实例步骤自定义两个分析器edge_ngram_analyzer和ngram_analyzer进行分词测试创建测试索引PUT analyzer_test{ "settings": { "refresh_interval": "1s", "index": { "max_ngram_diff": 10
2020-06-15 20:33:54
3449
1
原创 Vue项目优化
通过nprogress添加进度条效果安装nprogress插件:依赖 》安装依赖 》运行依赖,搜索nprogress,安装配置progress在axios.js中引入NProgress的JS和CSS在axios的request拦截器中,显示进度条NProgress.start()在axios的response拦截器中,隐藏进度条NProgress.done()import Vue from 'vue'// 导入axiosimport axios from 'axios'// 导入
2020-05-24 17:05:14
408
原创 SpringBoot单元测试之使用MockBean
场景eg: 在实际项目开发中,需要做单元测试时,由于开发环境不同导致整个项目启动时就会报错,这个时候可以考虑使用MockBean使用@Controllerpublic class DemoAction { public String getUserName(String id) { return null; }}测试类@RunWith(SpringRunner.class)...
2020-04-13 20:39:54
2648
原创 Vue项目中使用moment.js
moment.js官网地址http://momentjs.cn安装依赖打开命令行,输入vue ui,打开可视化界面依赖>安装依赖>运行依赖>moment配置插件在项目src目录下,新建dependences目录,新建moment.jsimport Vue from 'vue'import moment from 'moment'// 设置本地时区momen...
2020-03-29 14:04:19
7114
原创 Vue项目中使用v-charts
安装依赖打开命令行,输入vue ui,打开可视化界面echarts依赖>安装依赖>运行依赖>echartsv-charts依赖>安装依赖>运行依赖>v-charts配置插件在项目src目录下,新建dependences目录,新建vcharts.jsimport Vue from 'vue'import VCharts from 'v-cha...
2020-03-26 09:42:46
2340
原创 Elasticsearch-Cat命令详解
前言本文基于elasticsearch7.3.0版本Cat命令aliases显示别名,过滤器,路由信息GET _cat/aliases?valias index filter routing.index routing.search is_write_indexgoods_order goods_or...
2020-03-24 19:45:10
10468
3
原创 Vue插槽
官网地址:https://cn.vuejs.org/v2/guide/components-slots.html基本使用创建一个带插槽的组件SlotDemo.vue<template> <div> <h2>我是SlotDemo组件</h2> <!-- 插槽 --> <slot></sl...
2020-03-01 15:59:16
296
原创 vue cli4-环境变量和模式
官方文档环境变量一个环境变量文件只包含环境变量的键值对:NODE_ENV=developmentVUE_APP_BASE_URL=http://127.0.0.1:8080/注意:NODE_ENV - 是 “development”、“production” 、"test"或者自定义的值。具体的值取决于应用运行的模式BASE_URL - 会和 vue.config.js 中的 p...
2020-02-28 16:53:28
4152
1
原创 springboot整合vue
步骤创建springboot项目在resources目录下新建一个vue目录在vue目录下新建vue项目,或者把存在的vue项目copy到这个目录下都可以设置vue打包后输出的目录和vue打包后静态资源目录,在vue目录下(vue项目根目录)新建vue.config.jsmodule.exports = { // 设置打包后输出的目录 outputDir: ...
2020-02-27 22:27:02
1276
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人