- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 node.js、npm、webpack的区别
node.js:前端运行环境,相当于浏览器,拥有浏览器的内核可以运行前端jsnpm:相当于Maven,依赖管理webpack:Webpack 是一个前端资源的打包工具,它可以将js、image、css等资源当成一个模块进行打包...
2021-11-12 16:18:13
904
1
原创 剑指 Offer 32 - I. 从上到下打印二叉树(中等
题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。解法class Solution { public int[] levelOrder(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); //暂存树中的节点 ArrayList<Integer> list = new ArrayList<>(); //报错输出的节点
2021-10-17 16:56:25
161
原创 剑指 Offer 32 - II. 从上到下打印二叉树 II(简单)
题目从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。解法此题和二叉树的层次遍历类似 不过要设置一个变量记住每层的节点个数class Solution { public List<List<Integer>> levelOrder(TreeNode root) { //设置一个队列,用来存储二叉树中的元素 Queue<TreeNode> queue = new LinkedList<
2021-10-17 12:45:05
175
原创 剑指 Offer 55 - I. 二叉树的深度(简单)
标题题目解法:题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。解法:class Solution { public int maxDepth(TreeNode root) { if(root == null){ return 0; } int l = maxDepth(root.left); int r = maxD
2021-10-14 17:54:32
137
原创 LeetCode110. 判断一个树是否为平衡二叉树(简单)
目录题目解法:递归套路题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 解法:递归套路平衡树成立条件:左树为平衡二叉树右树为平衡二叉树左树和右树的高度差小于1需要信息:左树:是否是平衡二叉树、高度右树:是否是平衡二叉树、高度class Solution {//返回值类型public class ReturnType{ public boolean i
2021-10-12 17:55:14
163
原创 LeetCode958. 二叉树的完全性检验(中等)
题目给定一个二叉树,确定它是否是一个完全二叉树。百度百科中对完全二叉树的定义如下:若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)解法思路:层次遍历二叉树,遇到第一个左右不全空的节点,则做上标记如果存在节点左孩子为空,右孩子不为空,则返回false 代码(l == null && r != null)再2不违规情况下,第
2021-10-11 17:01:51
76
原创 LeetCode 98. 验证二叉搜索树
题目给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。方法一:辅助列表,判定中序遍历是否满足递增class Solution { //如果中序遍历的结果是满足递增的说明是搜索二叉树 List<Integer> res = new ArrayList<>(); public boo
2021-10-11 15:31:13
57
原创 六、Java线程池
文章目录6.1为什么用线程池?6.2线程池如何使用6.2.1线程池的架构说明6.2.2创建线程池3种6.2.3ThreadPoolExecutor底层原理6.3线程池7个重要的参数6.4线程池底层工作原理6.5线程池用哪个?生产中如何设置合理参数?6.5.1线程池的拒绝策略6.5.2三种创建线程池的方法那个用的多?都不用6.5.3自定义线程池6.1为什么用线程池?6.2线程池如何使用线程池的工具类:Arrays:数组的工具类Collections:集合的工具类Executors:线程池的工
2021-10-09 14:26:19
67
原创 2.2剑指 Offer 30. 包含min函数的栈
2.2.1题目定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top(); --> 返
2021-10-08 17:53:38
43
原创 2.1剑指 Offer 09. 用两个栈实现队列(简单)
2.1.1题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appe
2021-10-08 16:27:35
49
原创 1.5剑指 Offer 22. 链表中倒数第k个节点
牛客:JZ14 链表中倒数最后k个结点1.5.1题目输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.1.5.2方法一:利用栈链表所有节点进栈弹出k个节点class S
2021-09-30 14:55:22
66
原创 1.4剑指 Offer 52. 两个链表的第一个公共节点
牛客:JZ36 两个链表的第一个公共结点1.4.1题目输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表
2021-09-30 14:14:21
56
原创 LeetCode 剑指 Offer 24. 反转链表
牛客:JZ15 反转链表1.2.1题目定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL1.2.2解法一:双指针第一层循环第二层循环class Solution { public ListNode reverseList(ListNode head) { ListNode pre =
2021-09-29 17:33:00
94
原创 LeetCode 剑指 Offer 06. 从尾到头打印链表
牛客:JZ3 从尾到头打印链表1.1.1题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]1.1.2解法一:利用栈栈先进后出import java.util.ArrayList;import java.util.Stack;public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNo
2021-09-29 16:50:12
96
原创 JUC常用辅助类CountDownLatch、CyclicBarrier、Semaphore
一、CountDownLatch简介:CountDownLatch倒计时计数锁,其主要有俩个方法,当一个或多个线程调用await()方法时,这些线程会阻塞。其他线程调用countDown()方法会将计数器减1(调用countDown方法的线程不会阻塞)当计数器的值变为0时,因await()方法阻塞的线程会被唤醒,继续执行。题目:用6个线程模拟6个同学,6个同学全部离开教室,班长线程关门。public class CountDownLatchDemo { public stat
2021-09-29 10:27:05
106
原创 SpringBoot整合Redis、Mybatis、Druid、Mybatis-plus、Shiro等配置建议收藏
SpringBoot整合文档一、整合Reids1.1pom导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- spring2.X集成redis所需common-pool2链接池-->
2021-09-27 21:28:32
477
原创 Java二叉树的遍历递归和非递归(先、中、后)+层次
一、先中后层遍历简介如图所示二叉树先序遍历:FCADBEHGM 根左右中序遍历:ACBDFHEMG 左根右后续遍历:ABDCHMGEF 左右根层次遍历:FCEADHGBM 一层一层遍历二、递归先序、中序、后序下面案例构造的树结构如下图/** * @Author: cy * @Description: * 递归方法:先序、中序、后序遍历树 */public class Demo1 { public static void main(String[] args
2021-09-27 21:18:25
304
原创 一文搞定Spring、SpringMVC、Mybatis主要注解
SSM注解一、Mybatis注解@Param:作用是用于传递参数,从而可以与SQL中的字段名相对应@Insert:实现新增,代替了 @Delete:实现删除,代替了 @Update:实现更新,代替了 @Select:实现查询,代替了 @Result:实现结果集封装,代替了 @Results:可以与@Result 一起使用,封装多个结果集,代替了 @One:实现一对一结果集封装,代替了 @Many:实现一对多结果集封装,代替了 二、Spring注解1.声明bean的注解@Co
2021-09-26 14:29:31
429
原创 1、mysql索引基础知识点一文搞定
索引简介索引是什么?MySQL官方对索引的定义为:索引(INDEX)是帮助MySQL高效获取数据的数据结果。从而可以获得索引的本质:索引是排好序的快速查找数据结构。索引的目的在于提高查询效率,可以类比字典的目录。如果要查mysql这个这个单词,我们肯定要先定位到m字母,然后从上往下找y字母,再找剩下的sql。如果没有索引,那么可能需要a—z,这样全字典扫描,如果我想找Java开头的单词呢?如果我想找Oracle开头的单词呢???重点:索引会影响到MySQL查找(WHERE的查询条件)和排序(O
2021-09-26 11:47:12
94
原创 Java集合类多线程下不安全解决方法
二、集合类不安全2.1ArrayList线程不安全2.1.1例子单线程public class NotSafeDemo { //单线程很安全 public static void main(String[] args) { List<String> list = Arrays.asList("a", "b", "c"); list.forEach(System.out::println); }}abc多线程publi
2021-09-25 20:38:23
467
原创 Java多线程的一点思考,既然CPU一次只能执行一个线程,那为什么会产生并发问题?
现在假设有一段代码if(i != 6 ) { i++; //断点1 system.out.print(i);} //断点2有两个线程A,B同时执行这一段代码,假设A线程先被CPU调度,然而A线程在断点1处,时间片到期了,此时A线程的代码并没有执行完,但是CPU此时会调度B线程,并不会管A线程是不是执行完了这一段代码。再接着假设B线程现在执行完了这一段代码(当然也可能没有执行完),CPU 现在就又会调度A线程,并且从A线程的断点1处继续执行(注意不是重新执行,CPU切换的时候保存了
2021-09-25 17:14:47
285
原创 Java多线程JUC8锁问题
一、线程的8锁问题前提:8锁问题的讨论是建立在使用Thread.sleep(200)后,假设A线程先于B线程被CPU调度的前提下。1.1 标准访问,请问先打印邮件还是短信?class Phone{ public synchronized void sendEmail() throws Exception{ System.out.println("----------sendEmail"); } public synchronized void sendS
2021-09-25 16:13:28
317
原创 Java多线程精准通知顺序访问
/** * @Author: cy * @Date: 2021/09/24/15:47 * 题目:多线程之间按顺序调用,实训A->B->C * 三个线程启动,要求如下: * A打印5次,B打印10次,C打印15次 * 接着 * A打印5次,B打印10次,C打印15次 * ----来10轮 * * 1、 高内聚低耦合前提下,线程操作资源类 * 2、 判定/干活/通知 * 3、 多线程交互中,必须要防止多线程的虚假唤醒,也即(判断只用while,不能用if) * 4、 标.
2021-09-24 16:19:54
124
原创 java多线程生产者消费者
一、两个线程生产者消费者/** * @Author: cy * @Date: 2021/09/24/14:12 * 题目:现在两个线程,可以操作初始值为零的一个变量 * 实现一个线程对该变量加1,一个线程对该变量减1 * 实现交替,来10轮,变量初始值为零 * * 1、 高内聚低耦合前提下,线程操作资源类 * 2、 判定/干活/通知 * 3、 多线程交互中,必须要防止多线程的虚假唤醒,也即(判断只用while,不能用if) */class AirConditioner{
2021-09-24 16:18:09
272
原创 JUC买票案例
一、原始方法/** * 题目:三个搜票员 卖出 30张票 * 多线程编程的企业级套路+模板 * 1 在高内聚低耦合的前提下,线程 操作(对外暴露的调用方法) 资源类 */public class SaleTicket { public static void main(String[] args) { Ticket ticket = new Ticket(); new Thread(new Runnable() {
2021-09-24 11:32:07
96
原创 IDEA查看源码方法
下面我们以ArrayList为例子进入到ArrayList源码里面,右键如下图就会出现再ArrayList里面点击右键可以选择查看其实现类或者父类Object假设我们选择其父类object点击进去就可以看到源码,也可点击分叉上面的object...
2021-05-10 22:42:32
2198
原创 centos8 yum install gcc-c++安装
特地记录一下 今天想安装redis 必须要安装gcc-c++ 但是 yum install gcc-c++命令一直报网上找了好久方法 最后下面俩行命令解决yum install gccyum install gcc-c++
2021-05-09 18:55:26
1502
原创 PyTracking运行的小问题
一、配置1.1 模型加载1.2 数据集配置二、Tracking三、Test根据pytrcaking/evaluation/loacl配置自己的数据集和已经训练好的模型路径等。注意模型文件应该以.pth为结尾,如果是以tar结尾的需要直接改成pth格式2.1run_experimentexperiment_module这里的default的参数为myexperiment_name...
2021-04-16 19:04:13
2036
5
原创 Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking翻译
Transformer Meets Tracker: Exploiting Temporal Context for Robust Visual Tracking摘要一、介绍2、相关工作3.回顾跟踪框架4、视觉跟踪Transformer4.1、Transformer概述4.2、Transformer Encoder4.3、Transformer Decoder4.4、Tracking with Transformer-enhanced Features5. Experiments5.1. Implement
2021-04-11 16:54:08
614
原创 ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory
程序报错:ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory解决方法sudo ldconfig /usr/local/cuda-10.0/lib64可能会出现/sbin/ldconfig.real: /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7 不是符号连接不用管...
2021-04-09 21:07:04
771
1
原创 机器学习_特征工程
一.机器学习概述1.什么是机器学习?机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测2.机器学习常用数据集数据的结构组成特征值+目标值房子面积、房子位置、房子楼层、房子朝向都属于特征,假如某些特征的特征值是文本或者字符串时,需要对其进行特征处理转化为数据类型。3.机器学习常用数据集数据的类型离散型数据连续数据二.特征工程1.特征工程是什么特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解问题与预测模型之间的关系2.特征工程的意义直接影响
2020-09-20 21:21:00
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人