- 博客(75)
- 资源 (1)
- 收藏
- 关注
原创 Java中的Comparable 和 Comparator接口
Leetcode刷题时想用优先队列解决,在使用时碰到了怎么排序的问题。我首先给自定义的类Node81实现Comparator接口,重写了接口中的 compare() 方法。然后定义了一个优先队列 PriorityQueue queue = new PriorityQueue<>();,代码如下,然后运行时就报错啦。class Node81 implements Comparator<Node
2021-08-01 23:43:49
222
原创 Leetcode第250场周赛
https://leetcode-cn.com/contest/weekly-contest-250/可以输入的最大单词数https://leetcode-cn.com/problems/maximum-number-of-words-you-can-type/描述键盘出现了一些故障,有些字母键无法正常工作。而键盘上所有其他键都能够正常工作。给你一个由若干单词组成的字符串 text ,单词间由单个空格组成(不含前导和尾随空格);另有一个字符串 brokenLetters ,由所有已损坏的不同字母键
2021-07-18 15:38:53
295
原创 9:Lintcode 深度优先搜索(一)
9:Lintcode 深度优先搜索(一)LintCode 425:电话号码的字母组合https://www.lintcode.com/problem/letter-combinations-of-a-phone-number描述给一个不包含0和1的数字字符串,每个数字代表一个字母,请返回其所有可能的字母组合。下图的手机按键图,就表示了每个数字可以代表的字母。| 1 | 2ABC | 3DEF4GHIJKLMNO7PQRSTUVWXY
2020-12-29 20:38:41
860
原创 8. LintCode 分治题目(二)
8. LintCode 分治题目(二)7. LintCode 分治题目(一)LintCode 597:具有最大平均数的子树https://www.lintcode.com/problem/subtree-with-maximum-average描述给一棵二叉树,找到有最大平均值的子树。返回子树的根结点。LintCode会打印出根结点为你返回节点的子树,保证有最大平均数子树只有一棵样例输入:{1,-5,11,1,2,4,-2}输出:11说明:这棵树如下所示: 1 /
2020-12-26 18:31:32
145
原创 7. LintCode 分治题目(一)
7. LintCode 分治题目(一)当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直到可以直接求出解为止。这就是分治策略的基本思想。LintCode 900:二叉搜索树中最接近的值https://www.lintcode.c
2020-12-23 09:37:13
218
1
原创 6. LintCode 宽度优先搜索(二)
6. LintCode 宽度优先搜索(二)LintCode 615:课程表LintCode 618:搜索图中节点
2020-12-17 20:50:42
119
原创 5. LintCode 宽度优先搜索(一)
5. LintCode 宽度优先搜索(一)LintCode 433:岛屿的个数https://www.lintcode.com/problem/number-of-islands描述给一个01矩阵,求不同的岛屿的个数0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。样例输入:[ [1,1,0,0,0], [0,1,0,0,1], [0,0,0,1,1], [0,0,0,0,0], [0,0,0,0,1]]输出:3输入:[
2020-12-17 20:49:15
132
原创 vi指令说明(完整版)
vi指令说明(完整版)http://www2.nsysu.edu.tw/csmlab/unix/vi_command.htm文章内容来自上书网址,因为其使用的繁体,看着不是很舒服,简单转换成简体,如果有什么转换不清晰的,可以查看繁体版本。.vi的操作模式vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。当使用者进入vi后,即处在指令模式下,此刻键入的任何字皆被视为指令。在次模式下可进行删除、修改等动作。若要输入文本,则需进入输入模式。.输入模式如何进
2020-12-10 20:22:15
2437
原创 4. LintCode 二分法题目(二)
4. LintCode 二分法题目(二)3. LintCode 二分法题目(一)LintCode 458:目标最后位置https://www.lintcode.com/problem/last-position-of-target描述给一个升序数组,找到target最后一次出现的位置,如果没出现过返回-1。样例输入:nums = [1,2,2,4,5,5], target = 2输出:2输入:nums = [1,2,2,4,5,5], target = 6输出:-1解题思路简单二
2020-12-09 20:57:32
145
原创 建表字段使用了关键字,插入时sql语句报错
建表字段使用了关键字,插入时sql语句报错错误描述![image.png](https://img-blog.csdnimg.cn/img_convert/6c7c000a8974d739699dc907359122e7.png#align=left&display=inline&height=234&margin=[object Object]&name=image.png&originHeight=234&originWidth=241&siz
2020-12-08 09:56:56
599
原创 3. LintCode 二分法经典题目
3. LintCode 二分法题目2. LintCode双指针题目(二)整理自九章。第一境界写出不会死循环的二分法递归与非递归的权衡第二境界在排序的数据集上进行二分找到满足某个条件的第一个位置或者最后一个位置第三境界在未排序的数据集上进行二分保留有解的一半,或者去掉无解的一半第四境界在答案集上进行二分二分答案并验证答案偏大还是偏小LintCode 457:经典二分查找问题https://www.lintcode.com/problem/classi
2020-12-07 19:05:30
274
原创 2. LintCode双指针题目(二)
2. LintCode双指针题目(二)1. LintCode双指针题目(一)(左右指针)LintCode 228:链表的中点https://www.lintcode.com/problem/middle-of-linked-list描述找到链表的中点样例输入: 1->2->3输出: 2 样例解释: 返回中间节点的值输入: 1->2输出: 1 样例解释: 如果长度是偶数,则返回中间偏左的节点的值。不重新遍历链表的情况下得到中点解题思路这题用快慢指针的思
2020-12-05 14:17:38
257
原创 LintCode双指针题目(一)(左右指针)
LintCode双指针题目(一)(左右指针)算法题中有些题目可以利用双指针的技巧来巧妙的解题。双指针一般分两种:快慢指针:从同一个起点出发,两个指针的速度不同,通常用于链表中判断是否有环等。左右指针:从数据结构(一般为数组)的两端出发,向中间移动,直到两个指针撞上。本文主要记录一下LintCode中左右指针相关的题目。LintCode 587:两数之和-不同组成https://www.lintcode.com/problem/two-sum-unique-pairs/description
2020-11-22 22:59:48
190
原创 ReentrantLock源码笔记
ReentrantLock还不是很明白参考彤哥读源码https://blog.csdn.net/u010805617/article/details/87260475简介ReentrantLock是Java SE 5新增的jdk层面实现可重入锁的功能, 提供了与synchronized类似的同步功能,只是在使用时需要显示的获取和释放锁。虽然缺少了隐私获取和释放锁的便捷性,但是缺拥有了锁获取和释放的可操作性、可中断的获取锁以及超时获取锁等多种synchronized关键字不具备的同步特性。同时也提
2020-05-24 09:11:28
165
原创 Volatile解析
Volatile解析问题volatile有哪些语义volatile怎么实现volatile有什么缺陷参考《深入理解Java虚拟机》彤哥读源码https://mp.weixin.qq.com/s?__biz=Mzg2ODA0ODM0Nw==&mid=2247483914&idx=1&sn=46e6d95df8dc445da6a8f774dc128451&scene=21#wechat_redirect一:简介 关键字volatile可以说是Java虚拟机
2020-05-24 09:08:24
151
原创 synchronized笔记
synchronized解析问题1. synchronized的特性?2. synchronized的实现原理?参考彤哥读源码https://mp.weixin.qq.com/s?__biz=Mzg2ODA0ODM0Nw==&mid=2247483919&idx=1&sn=e46cdc70c1f6bb08761a7dc2b4b5b2db&scene=21#wechat_redirect《深入理解Java虚拟机》一:简介 当我们使用多个线程访问同一资源的时候
2020-05-24 09:05:49
151
原创 AQS(AbstractQueenSynchronized)
AQS(AbstractQueenSynchronized)参考彤哥读源码一:简介AQS的全称是AbstractQueuedSynchronizer,它的定位是为Java中几乎所有的锁和同步器提供一个基础框架。AQS是基于FIFO的队列实现的,并且内部维护了一个状态变量state,通过原子更新这个状态变量state即可以实现加锁解锁操作。二:源码主要内部类static final class Node { //共享模式的标记 static final Node SHARED =
2020-05-24 09:00:25
121
原创 红黑树学习笔记
1. 复习一下二叉树class Solution { public TreeNode invertTree(TreeNode root) { if (root != null) { TreeNode tmp = root.left; root.left = root.right; root.right = tmp; invertTree(root.left);
2020-05-15 18:50:39
144
原创 Leetcode: 136. 只出现一次的数字
解题思路题目很简单,但是因为题目有个线性时间复杂度和不使用额外空间的要求,这就很难拉。想半天想不出来。。看了题解,用的异或。大喊666.异或规律:任何数和 0做异或运算,结果仍然是原来的数, a ^ 0 = a任何数和其自身做异或运算,结果是0,a ^ a = 0异或运算满足交换律和结合律即 a ^ b ^ a = b ^ a ^ a = b ^ (a ^ a) = b ^ 0 = b题目中明确表示除了只出现一次的数,其余数字均出现两次,恰好它们可以a ^ a = 0,最后 b ^ .
2020-05-14 20:32:20
133
原创 PAT练习-牛客练兵场1001:Public BikeManagement
import java.util.Deque;import java.util.LinkedList;import java.util.Scanner;public class Main{ int max, n, m, end, halfMax; int[] numberOfBike; int[][] path; int[][] d; boolean[] flag; int minSend = Integer.MAX_VALUE, minBack =.
2020-05-11 21:05:02
164
原创 Java面试之虚拟机类加载机制
参考:《深入理解Java虚拟机》https://thinkwon.blog.csdn.net/article/details/104390752https://github.com/Snailclimb/JavaGuideJava虚拟机类加载机制1. 概述 虚拟机把描述类的数据从Class文件文件加载到内存,并对数据进行校验、转换解析和初始...
2020-04-07 23:35:50
138
原创 Java面试基础知识总结
Java基础知识参考内容整合以下文档。https://github.com/Snailclimb/JavaGuidehttps://blog.csdn.net/thinkwon/article/details/1043906121.1 重载和重写重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同、方法返回值和访问修饰符不同,发生在编译时。重写: 发生在父子类中...
2020-04-04 09:08:41
163
原创 Lettcode-836:矩形重叠
矩形重叠矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 2:输入:...
2020-03-18 18:43:53
128
原创 Leetcode程序员面试金典:面试题01.02 判定是否互为字符重排
题目给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例1:输入: s1 = "abc", s2 = "bca"输出: true 示例2:输入: s1 = "abc", s2 = "bad"输出: false说明:0 <= len(s1) <= 1000 <= len(s2) <= 100...
2020-03-09 14:42:24
229
原创 计算机网络(四):传输层
中国大学MOOC网站北京交通大学计算机网络课程笔记1. 传输层定义与功能定义Transport Layer 也称为运输层。在OSI中,传输层利用网络层提供的服务,并通过传输层地址提供给高层用户传输层地址提供给高层用户传输数据的通信端口,使系统间高层资源的共享不必考虑数据通信方面和不可靠的数据传输方面的问题。功能对一个进行的对话或连接提供可靠的传输服务,在通向网络的单一物理连接上实现该连...
2020-03-03 17:32:47
351
原创 计算机网络(三):网络层
1. 网络层定义OSI——定义网络射箭如何传输数据;根据唯一的网络设备地址路由数据包;提供流量和拥塞控制以防止网络资源的耗损。TCP/IP——网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务,这就是IP(Internet Protocol)的主要功能。2. IP地址IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围时唯一的32位的标识符。(IPV4)I...
2020-03-02 14:06:15
319
原创 计算机网络(二):数据链路层
中国大学MOOC网站北京交通大学计算机网络课程笔记1. 数据链路层定义 在OSI/RM中明确定义: 数据链路层是在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧在信道上的“透明”传输。2. 基本概率(1) 链路(link) 是一条无源的点到点的物理线路段,中间没...
2020-02-29 17:30:54
443
原创 计算机网络(零):绪论
中国大学MOOC网站北京交通大学计算机网络课程笔记1. 什么是计算机网络 计算机网络,是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统连接起来,在功能完善的网络软件和协议管理下,实现网络的硬件、软件及资源共享和信息传递的系统。 简单地说即连...
2020-02-28 16:50:01
318
原创 Mybatis初始化时序图和运行时序图
黑马课程笔记一:搭建整合环境 整合说明:SSM整合可以使用多种方式,这篇文章中选择简单的XML + 注解的方式在idea中创建maven的webapp工程项目1.1 在maven项目的配置工程添加ssm所需要的约束,导入jar包。 <dependencies> <!-- mybatis相关 --> <...
2020-02-28 11:33:58
2787
原创 springMVC跨服务器上传 报错:returned a response status of 405 Method Not Allowed
Type 异常报告消息 Request processing failed; nested exception is com.sun.jersey.api.client.UniformInterfaceException: PUT http://localhost:8080/pictures/9CE59D8E85AE4E59B10467AE79DF2B8E_333.jpg returned ...
2020-02-22 19:29:55
2293
2
原创 java开发工具IntelliJ开发maven项目pom文件错误failed to read artifact descriptor for xx.jar问题解决办法
将maven仓库中的jar包删除,重新联网下载可以解决。
2020-02-22 15:26:09
475
1
转载 idea 报错maven [ERROR] Maven execution terminated abnormally (exit code 1)
idea 报错maven [ERROR] Maven execution terminated abnormally (exit code 1) 转载自:[https://blog.csdn.net/yanghaibobo110/article/details/73835469] ...
2020-02-19 17:27:11
313
转载 IDEA中提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
转载:https://blog.csdn.net/Stripeybaby/article/details/80010734问题描述:运行Java Web项目时,IDEA中提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除解决方法:1. 打开【File】—【Project Structure】,找到以下两个地方: Project Structure->...
2020-02-13 16:08:52
1585
原创 程序的耦合(黑马笔记)
一:什么是程序的耦合 耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差(降低耦合性,可以提高其独立性)。耦合性存在于各个领域,而非软件设计中独有的。 在软件工程中,耦合指...
2020-02-13 11:04:31
346
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人