自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 关于mysql order by 用法的理解以及执行优化

sql执行的代码:select city,name,age from t where city=‘杭州’ order by name limit 1000 ;Extra 这个字段中的“Using filesort”表示的就是需要排序,MySQL 会给每个线程分配一块内存用于排序,称为 sort_buffer。初始化 sort_buffer,确定放入 name、city、age 这三个字段;从索引 city 找到第一个满足 city='杭州’条件的主键 id,也就是图中的 ID_X;到主键 i

2022-02-25 13:57:08 87

原创 leetcode 每日刷题记录--540. 有序数组中的单一元素

leetcode 刷题记录540. 有序数组中的单一元素给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。示例 1:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: nums = [3,3,7,7,10,11,11]输出: 10class Solution { public int sing

2022-02-14 11:23:56 170

原创 leetcode刷题记录--数据结构;深度优先搜索算法;二叉树;平衡树;1020. 飞地的数量;1669. 合并两个链表;108. 将有序数组转换为二叉搜索树

1020. 飞地的数量难度中等131给你一个大小为 m x n 的二进制矩阵 grid ,其中 0 表示一个海洋单元格、1 表示一个陆地单元格。一次 移动 是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过 grid 的边界。返回网格中 无法 在任意次数的移动中离开网格边界的陆地单元格的数量。示例 1:输入:grid = [[0,0,0,0],[1,0,1,0],[0,1,1,0],[0,0,0,0]]输出:3解释:有三个 1 被 0 包围。一个 1 没有被包围,因为它

2022-02-12 18:05:26 42

原创 leetcode每日一题--1447. 最简分数

leetcode每日一题1447. 最简分数给你一个整数 n ,请你返回所有 0 到 1 之间(不包括 0 和 1)满足分母小于等于 n 的 最简 分数 。分数可以以 任意 顺序返回。示例 1:输入:n = 2输出:["1/2"]解释:"1/2" 是唯一一个分母小于等于 2 的最简分数。示例 2:输入:n = 3输出:["1/2","1/3","2/3"]示例 3:输入:n = 4输出:["1/2","1/3","1/4","2/3","3/4"]解释:"2/4" 不是最简分数

2022-02-10 10:37:28 27

原创 Leetcode algorithm question brushing record--Binary search algorithm

Leetcode algorithm question brushing recordBinary search algorithm704. 二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums =

2022-01-27 14:48:02 31

原创 leetcode Brush question record--Greedy Algorithm--55. Jumping game

leetcode Brush question recordGreedy AlgorithmCore concept:Step 1: start from an initial solution;Step 2: adopt the iterative process. When you can move one step towards the goal, get a decomposition according to the local optimal strategy to reduce th

2022-01-25 18:19:43 161

原创 leetcode刷题记录--滑动窗口;排序;数学计算;找规律;1838. 最高频元素的频数;172. 阶乘后的零

练习题1838. 最高频元素的频数元素的 频数 是该元素在一个数组中出现的次数。给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。示例 1:输入:nums = [1,2,4], k = 5输出:3解释:对第一个元素执行 3 次递增操作,对第二个元素执 2 次递增操作,此时 nums = [4,4,4] 。4 是数组中最高频元素,频数是 3 。示例

2022-01-24 18:06:52 23

原创 leetcode练习题--记忆化搜索;字符串;1358. 包含所有三种字符的子字符串数目

练习题1358. 包含所有三种字符的子字符串数目给你一个字符串 s ,它只包含三种字符 a, b 和 c 。请你返回 a,b 和 c 都 至少 出现过一次的子字符串数目。示例 1:输入:s = “abcabc”输出:10解释:包含 a,b 和 c 各至少一次的子字符串为 “abc”, “abca”, “abcab”, “abcabc”, “bca”, “bcab”, “bcabc”, “cab”, “cabc” 和 “abc” (相同字符串算多次)。示例 2:输入:s = “aaacb”

2022-01-24 16:25:17 5514

原创 leetcode练习题--判断平衡二叉树;avl树;面试题 04.04. 检查平衡性

练习题面试题 04.04. 检查平衡性实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]1/ 2 2/ 3 3/ 4 4返回 false 。/** * Definition for a binary

2022-01-24 16:24:18 44

原创 leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

leetcode每日一题ps:今天的每日一题没意思,简单的模拟,自己换一道面试题 08.04. 幂集幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]题解:class Solution { List<List<Integer>> list; publi

2022-01-22 15:32:48 239

原创 元宇宙?风口?

元宇宙元宇宙到底是什么?元宇宙并不是特指单一的技术或应用,而是值一种基于增强现实,虚拟现实,混合现实技术的3D空间,生态或环境元宇宙技术的本质是“数字孪生”技术,即通过各种记录型媒体生成一个显示世界的丰满的数字版本,并在两者之间实现互操作元宇宙的核心维度包括算力,相应行,逼真性,沉浸性,互动性,用户自主性,数字财产保护,数字货币支付等它在制造业,城市规划,零售业,教育,医疗,娱乐和社交等方面的应用也越来越多元宇宙与现实世界元宇宙并非仅仅是像扎克伯格这样的技术公司高管的逐利梦想,而且还是一个伟

2022-01-20 15:20:27 236

原创 web 1.0-->web 2.0-->web 3.0

web 1.0少数人生产内容,多数人消费内容的时代,传播也呈现出晶莹对大众和一对多的格局web 2.0实现了信息传播的民主化,此事,任何人只要话五分钟就可以在互联网上用于一亩三分地(博客,个人主页)• 媒介的表达形式,从纯文字变成包含图片、动图、音视频等;• 媒介内容的长短,(从长内容变成也可以发微内容);• 媒介内容之间互联(从独立的个人主页变成互联的个人主页);• 移动端(APP),将互联网带入到移动化时代。web 3.0• Web3.0是在Web2.0的基础上发展起来的一种能更好

2022-01-20 15:07:46 11778

原创 leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用

leetcode每日一题539. 最小时间差示例 1:输入:timePoints = [“23:59”,“00:00”]输出:1示例 2:输入:timePoints = [“00:00”,“23:59”,“00:00”]输出:0class Solution { public int findMinDifference(List<String> time) { int len = time.size(); List<Integer

2022-01-18 14:50:08 285

原创 操作系统练习题--指令;unix操作系统;文件系统;linux;多道处理程序;批处理

1.1 广义指令必须在管态下执行。这个说法是否正确A. 正确B. 错误选B。**管态:**管态又叫特权态,系统态,是操作系统管理的程序执行时,机器所处的状态。**原语:**通常由若干条指令组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。是操作系统的一个组成部分,它必须在系统态下执行,并且常驻内存,而个别系统有一部分不在管态下运行。原语和广义指令都可以被进程所调用,两者的差别在于原语有不可中断性,它是通过在执行过程中关闭中断实现的,且一般由系统进程调用。许多广义

2022-01-17 16:31:38 775

原创 算法学习--并查集的学习(基础知识概念)(深搜广搜算法对比);547. 省份数量

并查集练习基础知识概念理解:并查集(Dijoint Set)属于一种跳跃式数据结构,也就是说你不会就是你压根都不会,你要是一会的就会用就行了,它没有太多让你在上面进行发展的空间,或者是需要像动态规划或者是各种搜索一样有非常强的随机应变和在上面进行自由发挥的空间。所以我们主要就是把它的情景和它的实现代码进行学习掌握。掌握代码模版直接套上去用即可。使用场景:它解决的场景就是组团和配对的问题,也就是说在有些现实的问题中,你需要很快地判断这两个个体是不是在一个集合中,这么讲有点抽象,很多时候就是说你和他是

2022-01-15 17:52:37 122

原创 leetcode刷题记录--搜索;模拟;数学推导;1716. 计算力扣银行的钱;48. 旋转图像剑指 ;Offer 29. 顺时针打印矩阵

leetcode每日一题1716. 计算力扣银行的钱Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。示例 1:输入:n = 4输出:10解释:第 4 天后,总额为 1 + 2 + 3 + 4 = 10 。示例 2:输入:n = 10输出:37解释:第

2022-01-15 15:05:26 21

原创 《图解java多线程设计模式》中的 ActiveObject 模式

ActivationbQueuepublic class ActivationbQueue { private static final int max_method_request = 100; private final MethodRequest[] requestsQueue; private int tail; private int head; private int count; public ActivationbQueue(){

2022-01-14 18:27:16 131

原创 《图解java多线程设计模式》中的 Balking 模式

ChangerThread:修改并保存数据内容的类public class ChangerThread extends Thread{ private final Data data; private final Random random = new Random(); public ChangerThread(String name,Data data){ super(name); this.data = data; } p.

2022-01-14 18:23:02 84

原创 《图解java多线程设计模式》中的 Future 模式

Datapublic interface Data { public abstract String getContent();}FutureDatapublic class FutureData { private RealData realData = null; private boolean ready = false; public synchronized void setRealData(RealData realData){ if

2022-01-14 18:20:46 29

原创 《图解java多线程设计模式》中的 GuardedSuspension 模式

ClientThread:表示发送请求的线程public class ClientThread extends Thread{ private final Random random; private final RequestQueue requestQueue; public ClientThread(RequestQueue requestQueue,String name,long seed){ super(name); this.rando

2022-01-14 18:18:18 21

原创 《图解java多线程设计模式》 中的 ProducerConsumer 模式

main/** *生产者消费者模式 * 生产者安全的将数据交给消费者,但是当消费者和生产者以不同的线程运行时,两者之间的处理速度差异便会引起问题 * 例如:消费者想要获取数据,可数据还没生成,或者生产者想要交付数据,而消费者的状态嗨无法接受数据等 * producer-consumer模式在生产者和消费者之间加入了一个“桥梁角色”,该角色用于消除线程间处理速度的差异 * * Channel通道 * 为了确保安全性,channel角色会对produce角色和consumer角色的访

2022-01-14 18:15:22 756

原创 操作系统练习题--管道;通道;进程间通信;内存碎片;ThreadLocal;fork和exec

1.1 下列选项中,降低进程优先级的合理时机是( A )。A. 进程的时间片用完B. 进程刚完成I/O,进入就绪列队C. 进程长期处于就绪列队中D. 进程从就绪状态转为运行状态解释进程时间片用完,可降低其优先级以让别的进程被调度进入执行状态。B选项中进程刚完成I/O,进入就绪队列等待被处理机调度,为了让其尽快处理I/O结果,故应提高优先权。C选项中进程长期处于就绪队列,为不至于产生饥饿现象,也应适当提高优先级。D选项中进程的优先级不应该在此时降低,而应在时间片用完后再降低。1.2

2022-01-14 18:10:23 589

原创 leetcode 每日一题--排序算法;多路归并;优先队列;373. 查找和最小的K对数字;23. 合并K个升序链表;148. 排序链表;912. 排序数组

leetcode 每日一题373. 查找和最小的K对数字给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2 。请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,6]解释: 返回序列中的前 3 对数:[1

2022-01-14 16:34:51 138

原创 操作系统学习--进程线程;cpu;主存

1.1 访管指令能引起访管中断,它本身属于特权指令( B )A. 正确B. 错误解释1:执行访管指令会产生一个中断事件,从而将CPU从用户态转换到核心态。而访管指令本身是在用户态下执行的。特权指令是在核心态下执行的指令。解释2:访管指令并不是特权指令 。所谓特权指令,是指用于操作系统或其他系统软件 的指令,一般不提供给用户使用。1.2 关于etcd中Raft的说法,错误的是( B )A. 在Raft中,任何一个节点都可能成为LeaderB. 只有特定服务器都可以成为一个候选

2022-01-13 17:39:12 1133

原创 图论搜索/模拟--leetcode:747. 至少是其他数字两倍的最大数;2. 两数相加

leetcode 每日一题747. 至少是其他数字两倍的最大数给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。示例 1:输入:nums = [3,6,1,0]输出:1解释:6 是最大的整数,对于数组中的其他整数,6 大于数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。示例 2:输入:nums = [1,2,3,4]输出:-1解释

2022-01-13 14:58:32 26

原创 关于bfs(广度优先搜索算法)和dfs(深度优先搜索算法)--leetcode题:1036. 逃离大迷宫;112. 路径总和;113. 路径总和 II;102. 二叉树的层序遍历;200. 岛屿数量

leetcode 每日一题1036. 逃离大迷宫在一个 106 x 106 的网格中,每个网格上方格的坐标为 (x, y) 。现在从源方格 source = [sx, sy] 开始出发,意图赶往目标方格 target = [tx, ty] 。数组 blocked 是封锁的方格列表,其中每个 blocked[i] = [xi, yi] 表示坐标为 (xi, yi) 的方格是禁止通行的。每次移动,都可以走到网格中在四个方向上相邻的方格,只要该方格 不 在给出的封锁列表 blocked 上。同时,不允许走

2022-01-12 18:21:13 134

原创 《图解java多线程设计模式》中的 ReadWriteLock 模式

Data:public class Data { private final char[] buffer; private final ReadWriteLock lock = new ReadWriteLock(); public Data(int size){ this.buffer = new char[size]; Arrays.fill(buffer, '*'); } public char[] read() throw

2022-01-12 18:16:17 17

原创 《图解java多线程设计模式》中的 ThreadPerMessage 模式

Helper: 提供字符显示功能的被动类public class Helper { public void handle(int count,char c){ System.out.println(" handle (" + count +"," +c + ") start"); for (int i = 0;i < count;i++){ slowly(); System.out.print(c);

2022-01-12 18:07:06 66

原创 《图解java多线程设计模式》中的 ThreadSpecificStrorage 模式

ClientThread:表示调用log的线程的类public class ClientThread extends Thread { public ClientThread(String name){ super(name); } public void run(){ System.out.println(getName() + " start "); for (int i = 0; i < 10; i++) {

2022-01-12 18:03:50 18

原创 《图解java多线程设计模式》中的 TwoPhaseTermination 模式

CountupThreadpublic class CountupThread extends Thread{ private long counter = 0; private volatile boolean shutdownRequested = false; public void shutdownRequest(){ shutdownRequested = true; interrupt(); } public bool

2022-01-12 18:00:08 68

原创 《图解java多线程设计模式》中的 WorkerThread 模式

Channel:接收工作请求并将工作请求交给工人线程的类public class Channel { private static final int MAX_REQUEST = 100; private final Request[] requestsQueue; private int tail; private int head; private int count; private final WorkerThread[] threadPool;

2022-01-12 17:57:04 87

原创 计算机基础知识--操作系统练习题:并发;文件系统;内存管理

牛客网操作系统练习题1.1 文件系统采用( C )组织文件A.堆栈B.指针C.目录D.路径1.2 UNIX 系统命令 cat file1>>file2 功能是( B )A. 将文件file2的内容添加到文件file1的末尾B. 将文件file1的内容添加到文件file2的末尾C. 连接文件file1和file2D. 显示文件file1和file21.3 在消息缓冲队列通信中,消息队列属于临界资源,因此多个进程必须对它进行互斥地访问,这样的说法正确吗?A.

2022-01-12 17:50:05 348

原创 基础知识练习刷题:操作系统;计算机网络;数据结构

牛客网基础知识练习刷题:在下面关于并发性的叙述中正确的是:并发性是指若干事件在同一时间间隔发生ICMP 的功能包括: 差错报告,测试目的站是否可达,消息询问vi编辑器中,删除一行的命令是:dd适用于折半查找的表的存储方式及元素排列要求为:顺序方式存储,元素有序有 8 个结点的无向连通图最少有()条边 : 7具有 n 个顶点的有向简单图最多有【 】条边:n ( n + 1 )当进程因时间片用完而让出处理机时,该进程应转变为( )状态:就绪已知无向图G含有16条

2022-01-12 17:07:34 197

原创 操作系统--文件管理--《现代操作系统》

操作系统学习:第四章–文件管理什么是文件系统?文件系统是对常规文件和目录的组织集合。在Linux中,用来创建文件系统的命令是mkfs,而且在Linux及其他类Unix系统中,并不区分文件和目录:目录就是记录了其他文件名的文件。什么是文件?文件是怎么来的?现代操作系统为解决信息能够独立于进程之外被长期存储而引入了文件,文件作为进程创建信息的逻辑单元可以被多个进程并发使用。文件时进程创建的信息逻辑单元。一个磁盘一般含有几千甚至几百万个文件,每个文件都是独立于其他文件的关于绝对路径和相对路径以及分割

2022-01-12 17:04:32 81

原创 贪心算法的学习;leetcode--334. 递增的三元子序列;11. 盛最多水的容器;646. 最长数对链

leetcode每日一题:334. 递增的三元子序列给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j < k 的三元组都满足题意示例 2:输入:num

2022-01-12 14:53:41 28

原创 力扣刷题(子序列问题)--1713. 得到子序列的最少操作次数;1143. 最长公共子序列

力扣刷题:1713. 得到子序列的最少操作次数题目:给你一个数组 target ,包含若干 互不相同 的整数,以及另一个整数数组 arr ,arr 可能 包含重复元素。每一次操作中,你可以在 arr 的任意位置插入任一整数。比方说,如果 arr = [1,4,1,2] ,那么你可以在中间添加 3 得到 [1,4,3,1,2] 。你可以在数组最开始或最后面添加整数。请你返回 最少 操作次数,使得 target 成为 arr 的一个子序列。一个数组的 子序列 指的是删除原数组的某些元素(可能一个元素

2021-07-26 10:52:23 443

原创 操作系统基础知识点总结归纳:进程线程;同步异步;并发并行;死锁等

2.操作系统2.1 进程和线程的区别?进程可以说是一个“执行中的程序”。程序是指令、数据及其组织形式的描述,是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。有了线程技术,我们就可以在一个进程中创建多个线程,让它们在“同一时刻”分别去做不同的工作了。这些线程共享同一块内存,线程之间可以共享对象、资源,如果有冲突或需要协同,还可以随时沟通以解决冲突或保持同步。不过,多线程技术不是万金油,它有一个致命的缺点:在一个进程内,不管你创建了多少线程,它

2021-07-15 18:02:13 237

原创 java8的特性,使用Lambda表达式实现对集合操作总结归纳

import java.util.*;public class ExampleList { public static void main(String[] args) { //创建list List<String> list = new LinkedList<>(); //初始化list list.add("A"); list.add("B"); list.add("C"

2021-05-13 14:53:14 110

原创 读书笔记--一句话了解常用的23种设计模式

简单一段话带你简单了解设计模式从迭代器开始,我们将类中数据结构的遍历和类的功能实现分离出来,本质上使用了工厂模式;其次我们学习了适配器模式,它将不同的接口进行适配,从而便于版本的兼容性以及其他功能;然后我们学习了模板方法,使用模板面向抽象编程,便于新的子类的实现和管理;之后学习了工厂模式,其实借用了模板模式来创建产品,是一种非常重要用处很广的一种方法;然后我们学习了单例模式,有懒汉式、饿汉式等,生成关于某个类全局唯一的对象,注意多线程的影响;之后是原型模式,用来复制复杂的对象,使用了clone方

2021-05-12 22:44:33 23

原创 工作项目经验归纳--使用java调取c++动态链接库

最近一直在折腾之前留下的问题,很多东西翻阅了一遍又一遍,测试的时候出现一个又一个小问题,不知道会怎么样,所以耽误了很久的时间我这边拿到的动态链接库是由c++生成的,编译成了dll,拿给我调用,最难的大概就是c++的不支持跨平台的操作,踩了太多太多的坑第一个问题:问题:什么是动态链接库解析:c++调取了一个sdk,sdk里面有一个接口,我需要使用java来调用,并传参数,得到相应的结果(int)第二个问题问题:c++的跨平台性在不同操作系统下的区别解析:在win下生成的是dll,在mac生成的是

2021-05-07 19:54:26 95

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除