- 博客(393)
- 资源 (17)
- 收藏
- 关注
原创 LeetCode111. 二叉树的最小深度
题目:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5思路1:深度优先 +递归class Solution { public int minDepth(TreeNode root) {
2021-01-24 22:17:46 359
原创 LeetCode104. 二叉树的最大深度
题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。思路:标签:DFS找出终止条件:当前节点为空找出返回值:节点为空时说明高度为 0,所以返回 0;节点不为空时则分别求左右子树的高度的最大值,同时加1表示当前节点的高度,返回该...
2021-01-24 21:35:02 316
原创 LeetCode102. 二叉树的层序遍历
题目:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层序遍历结果:[ [3], [9,20], [15,7]]思路:利用广度优先进行求解class Solution { public List<List<Integer>> leve...
2021-01-24 21:03:35 323
原创 LeetCode 122. 买卖股票的最佳时机 II
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买...
2021-01-24 19:06:48 231
原创 LeetCode169. 多数元素
题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2思路1:利用map遍历整个数组,对记录每个数值出现的次数(利用HashMap,其中key为数值,value为出现次数);接着遍历HashMap中的每个Entry,寻找value值> nums.leng.
2021-01-24 18:35:03 194
原创 LeetCode50. Pow(x, n)
题目:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 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思路1:利用好递归分治思想进行解题class Solution { public double myPow(double x, int n) {
2021-01-24 17:19:33 184
原创 LeetCode236. 二叉树的最近公共祖先
题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 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解释: .
2021-01-19 15:59:37 182
原创 LeetCode235. 二叉搜索树的最近公共祖先
题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 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.
2021-01-19 14:01:06 182
原创 LeetCode98. 验证二叉搜索树
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,...
2021-01-19 12:59:16 260
原创 LeetCode18. 四数之和
题目:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, ...
2021-01-18 21:54:59 289
原创 LeetCode15. 三数之和
题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]思路1:先对整个数组进行排序,数组为从小到大进行排序.
2021-01-18 17:04:36 159
原创 LeetCode1. 两数之和
题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target =.
2021-01-18 15:52:17 150
原创 LeetCode242. 有效的字母异位词
题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false思路1:利用一个长度为26的数组,其中遍历字符数组 用 字符-'a' 得到数组的下标,然后S负责加1,T负责减1,最后便利数组 如果有一个不等于0 则说明不是字母异位词lass Solution { public.
2021-01-18 15:22:31 171
原创 LeetCode239. 滑动窗口最大值
题目:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7...
2021-01-18 14:07:14 300 1
原创 LeetCode703. 数据流中的第 K 大元素
题目:设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest 类: KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。示例:输入:["KthLargest", "add", "add", "add", "add", "ad...
2021-01-11 16:23:33 208
原创 LeetCode225. 用队列实现栈
题目:使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。 你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标...
2021-01-11 14:17:05 203
原创 LeetCode232. 用栈实现队列
题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元素 boolean empty() 如果队列为空,返回 true ;否则,返回 false说明: 你只能使用标准的栈操作 —— 也就是只有 push to...
2021-01-11 13:20:31 188
原创 LeetCode20. 有效的括号
题目:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"...
2021-01-11 12:28:54 229
原创 LeetCode141. 环形链表(判断链表中是否有环)
题目:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表
2021-01-11 00:30:31 270
原创 LeetCode206. 反转链表
题目:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路1: 遍历列表,改变指针指向,当链表遍历完毕时讲得到完整的反转链表class Solution { public ListNode reverseList(ListNode head) { //假如传过来的是 1-2-3-4 //定义前一个节点 .
2021-01-10 23:54:00 280
原创 LeetCode24. 两两交换链表中的节点
题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]解题思路:本题采用递归的思路解决问题,首先了解下递归的思路及要点,因为递归本质就是不断重复相同的事情。而不是去思考完整的调用栈,一级又一级,无从下手。我们只关心最小调用单元就行,其中递..
2021-01-10 23:44:18 131
原创 ES核心原理及概念简介
1:ES简介ES是一个分布式,可扩展,近实时的高性能都多与数据分析引擎,提供了收集,分析,存储数据三大功能,主要特性 分布式,零配置,亦庄亦用,自动发现,索引自动分片,索引副本机制,RestFul风格接口,多数据源和自动搜索负载,ES基于java编写,内部使用Lucene做索引及搜索,通过进一步封装Lucene解决了Lucene内部的复杂性,对外提供一个rest形式的API,对开发人员很友好,让全文搜索更简单。2:倒排索引中文信息检索领域,有正排索引,倒排索引两种,下面分别介绍下索引,上
2020-10-20 21:46:09 4472
原创 JAVA静态变量的采坑
在进行静态变量操作是一定要小心处理,如果只对静态变量做读操作,可以随便使用,但是如果涉及到静态变量的变更操作,一定要小心加小心,尤其是项目中多处使用静态变量并且有变更操作时。小僧含泪写下此篇,话不多说,我给你念叨下案发现场。1:首先贴出来项目中使用的静态变量 public class Constant{public static List<String> cartImportDefaultHeadList = new ArrayList<String>();sta
2020-08-18 19:45:16 635
原创 Springboot 集成 RabbitMq(注解版)
1:pom中引入相关的依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-stream-binder-rabbit</artifactId> </dependency>2:配置文件中加入对应的配置# mq配置#添加类型spring.cloud.stream.bi
2020-06-22 20:27:52 1159
原创 SpringBoot2.0 结合FreeMark 利用模板直接发邮件Email功能
序言:本篇是Springboot2.0结合Freemark 给出邮件模板,程序只要关心所需的数据即可 使用起来相当方便,模板文件为ftl文件,ftl文件内部都是纯HTML的东西1:pom引入对应的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifac
2020-06-22 20:00:17 4374
原创 SpringBoot2.x - 基于注解实现拦截器
https://blog.csdn.net/weixin_43687167/article/details/91966538
2020-05-14 18:33:35 353
原创 分布式全局唯一ID的原理及实现
1:实现原理及介绍:全局唯一ID生成的是Long类型的ID,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特。Snowflake ID组成结构:正数位(占1比特)+时间戳(占41比特)+机器ID(占10比特)+自增值(占12比特),总共64比特组成的一个Long类型。 第一个bit位(1bit):Java中long的最高位是符号位代表正负...
2020-04-16 14:00:32 765
原创 Springboot统一异常处理
https://blog.csdn.net/weixin_38003389/article/details/83149252https://www.cnblogs.com/lgjlife/p/10988439.html
2020-04-15 18:22:43 275
原创 全局性唯一分布式ID几种实现
一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID...
2020-04-15 18:04:05 912
原创 订单号设计规则
https://blog.csdn.net/chenbo19867758/article/details/79854503https://www.jianshu.com/p/6bb4064e316ahttps://www.zhihu.com/question/19805896
2020-04-13 09:14:04 1109 1
转载 AES-128-CBC方式加密解密
https://blog.csdn.net/tianshi1017/article/details/9129633
2020-04-08 10:53:13 3161
原创 在 Windows 上安装和运行 Flink1.9
. 下载 Flink下载 flink-1.9.0-bin-scala_2.12.tgz 。这里使用的是当前的最新版 1.9.0 。下载后解压到 D:\flink\flink-1.9.0 目录2. 运行 Flink运行 Flink 需要安装 Java 7.x 或更高的版本,操作系统需要 Win 7 或更高版本。可以通过 java -version 确认 JDK 的版本, 1.7...
2020-02-27 23:36:39 3093 3
原创 TiDB基本简介
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致...
2020-01-16 16:31:37 61499 6
原创 TiDB基本简介
由于目前的项目把mysql换成了TiDb,所以特意来了解下tidb。其实也不能说换,由于tidb和mysql几乎完全兼容,所以我们的程序没有任何改动就完成了数据库从mysql到TiDb的转换,TiDB 是一个分布式 NewSQL (SQL 、 NoSQL 和 NewSQL 的优缺点比较 )数据库。它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致...
2020-01-16 16:28:32 894
原创 CDH6.3 集群安装Kafka服务步骤以及问题解决方法
https://blog.csdn.net/weixin_40040107/article/details/103242611
2020-01-03 12:04:06 2371
原创 Cloudera-Manager安装意外中断如何卸载的问题
问题描述:使用Cloudera-Manager-Installer.bin安装过程中,意外中断。当你重新安装时,提示已经安装了CM,请先卸载。尝试使用sudo /usr/share/cmf/uninstall-cloudera-manager.sh命令卸载失败,提示找不到 mojosetup/mojosetup文件解决方法:1.运行以下命令,然后就可以重新安装sudo rm...
2019-12-30 14:26:02 342
原创 redis数据库迁移方案
redis迁移方案整理一下常用的几种redis迁移的方案,分别对应不同的场景。备份/拷贝/重启 redis-dump 客户端1. 备份/拷贝/重启利用redis的持久化功能,redis重启的时候,会自动从硬盘的持久化文件中读取数据再恢复到内存中。利用这里原理,把redis2的持久化备份替换成redis1的,然后重启redis2,它就会从硬盘持久化文件恢复到内存,这样一来r...
2019-12-24 15:45:24 2223
分类算法朴素贝叶斯-NB.pdf
2020-02-20
巴豆大数据团队讲师课件Yarn.pdf
2020-02-20
巴豆大数据团队讲师课件Hbase.pdf
2020-02-19
卸载Windows10deuninstall_edge.zip
2020-02-12
运行维护管理体系和制度规范.doc
2020-01-07
cmmi3完整版全套模板最新版.zip
2019-12-16
CMMI3(1-21章节).zip
2019-12-16
GAT 1400-2017公安视频图像信息应用系统.zip
2019-12-16
keepalived2.0.8
2019-08-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人