- 博客(44)
- 收藏
- 关注
原创 524. 通过删除字母匹配到字典里最长单词
524. 通过删除字母匹配到字典里最长单词题目描述题目解析代码实现性能分析题目描述给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字典序最小的字符串。如果答案不存在,则返回空字符串。示例 1:输入:s = "abpcplea", dictionary = ["ale","apple","monkey","plea"]输出:"apple"示例 2:输入:
2021-09-15 20:52:01
115
原创 68. 文本左右对齐
68. 文本左右对齐题目描述题目解析代码实现性能分析题目描述给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ’ ’ 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。
2021-09-09 22:51:58
231
原创 96. 不同的二叉搜索树
96. 不同的二叉搜索树题目描述题目解析图解代码实现性能分析题目描述给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。示例 1:输入:n = 3输出:5示例 2:输入:n = 1输出:1提示:1 <= n <= 19题目解析此类题目是求极致的递推关系,可以使用动态规划。由上一步的结果推出这一步的结果,将左子树和右子树看成一个整体,例如我们要求的n=3的,设n的二叉树总数为S(n),设以i为
2021-09-07 22:02:12
299
2
原创 24. 两两交换链表中的节点
24. 两两交换链表中的节点题目描述题目解析1、递归解法2、迭代算法3、利用队列或者栈性能分析题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]题目解析1、递归解法我的理解就是将递归作为一个结果单独看待,图解:“其余”代表递归结果,表
2021-09-06 22:43:00
344
1
原创 leetcode 90. 子集Ⅱ
leetcode 90. 子集Ⅱ题目描述题目解析代码实现性能分析题目描述给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。题目解析这类题目是典型的回溯算法,通过剪枝消除重复的子集。以(1,2,2)为例:代码模板一般是:private void dfs(args...){ //因为回溯算法就是典型的递归操作,必须有终止条件 if(...){ return; } for(i
2021-09-05 11:40:03
91
原创 操作系统之进程详解一
操作系统之进程详解一进程的概念和特征进程的定义进程的特征进程的状态和转换进程控制进程的创建进程的终止进程的阻塞和唤醒进程切换进程的组织进程控制块程序段数据段进程的通信共享存储消息传递管道通信进程的概念和特征进程的定义进程是程序的一次执行过程。进程是一个程序及其数据在处理机上顺序执行时所发生的活动。进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单元。进程的特征动态性:进程是程序的一次执行,它有着创建、活动、暂停、终止等过程,具有一定
2020-07-28 18:41:15
876
原创 Graphviz入门
Graphviz入门Graphviz简介安装下载入门学习Graphviz简介1、Graphviz 是一款由 AT&T Research 和 Lucent Bell 实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络,支持多种格式输出。2、Graphviz 的输入是一个用 dot 语言编写的绘图脚本,通过对输入脚本的解析,分析出其中的点、边及子图,然后根据属性进行绘制。3、Graphviz layout 以简单的文本语言描述图形,并以实用的格式制作图表,如用于网页的 images
2020-07-27 23:34:31
748
原创 jvm监控命令总结
点击蓝字关注我们01jpsJps:Lists the instrumented Java Virtual Machines (JVMs) on the target system. T...
2020-07-14 00:00:00
314
原创 elasticsearch从入门到精通(一)
点击蓝字关注我们01elasticsearch简介Elasticsearch 是一种实时的分布式搜索引擎,具有对大规模快速检索的能力。是一种面向文档型数据库,相对于传统的关系型数据库,...
2020-07-11 00:00:00
299
原创 由内而外的类加载过程解析
由内而外的类加载过程解析前情提要jvm内存模型1、什么是方法区2、虚拟机栈3、本地方法栈4、堆5、程序计数器类加载过程1、加载2、验证3、准备4、解析5、初始化)前情提要java中你new一个对象之后是怎么生效以及怎么在机器中运行的你有想过吗?所有java代码的运行都是要依靠jvm,及Java Virtual Machine(Java虚拟机),.java文件被java编译器javac编译成.class文件之后,jvm就可以识别.class文件的内容了,这样java就相当于有了自己的语法规则,今天来
2020-05-19 22:44:11
148
原创 关于位运算的骚操作只有你不懂?
关于位运算的骚操作只有你不懂?位移运算的特性1、判断奇偶性2、求一个数2的次方3、交换变量4、假设一个数组中只有一个数出现过1次,其余均出现2次,找出出现一次的这个数5、求二进制数中1的个数6、正整数n,找出大于n,并且最接近2的次方位移运算的特性& (与),两个数都为1相与结果为1,除此之外都为0。| (或),两个数只要有其中一个为1,结果为1。~ (非),这是对单数操作的取反操作,1的非是0,0的非是1。4.(异或),两个数不同异或结果为1,相同为0。例如:10=1,1
2020-05-17 20:47:29
264
原创 谈谈不一样的session、token、cookie理解
再谈session、token、cookiesession、token、cookie三者之间的关系sessionid和token有什么不同再说说session老生常谈的cookie信息session、token、cookie三者之间的关系关于session、token、cookie的文章已经很多了,本文只想结合自己的理解重新整理一遍自己的思路。谈谈对三者的看法。1、session是在服务端,从实现的数据结构上看类似于hashmap,当然内部原理没有深究,具体实现应该不是用hashmap实现的,毕竟要保
2020-05-16 19:23:57
270
原创 浅谈float和double
浅谈float和double浅谈float和double举个栗子浅谈float和double今天我们来谈谈Java中的float和double在计算机中是如何存储的。都知道int和float在Java中所占的字节数都是4字节,但是int只能存储整数型,float不仅能储存浮点型,存储范围也比整数大,既然同样的字节数为什么会有不同的效果呢?是因为float和double类型在计算机中的存储结构...
2020-04-25 17:56:46
2850
原创 全面认识Dijkstra路由最短路径算法
点击蓝字关注我们01Dijkstra路由最短路径算法先简单解释一下该算法的字面含义:根据百度百科的解释为:是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉...
2020-04-20 00:00:00
1750
原创 Dijkstra路由最短路径算法
Dijkstra路由最短路径算法Dijkstra路由最短路径算法算法实现Dijkstra路由最短路径算法先简单解释一下该算法的字面含义:根据百度百科的解释为:是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。下面开始图文解释:我们要寻找从a点到...
2020-04-19 18:02:19
4102
原创 按下回车的那一刻发生了什么?
按下回车的那一刻发生了什么?DNS域名解析运用层封装传输层网络层数据链路层物理层原路返回DNS域名解析当输入一个地址浏览器要做的第一步请求当然是域名解析,将请求的域名解析成IP。域名解析是需要去访问域名服务器,询问域名服务器你所要访问的域名IP是多少,这里域名服务器可以配置本地的,也可以直接请求顶级域名服务器。解析过程如下:这里的本地域名可以是指本机的dns缓存,也可以配置的dns域名服务...
2020-04-19 01:56:10
366
原创 一文带你了解计算机世界(二)
长按下方二维码关注我计算机网络必须知道的核心知识点(二)1、DNS域名层次结构和两种域名解析方式工作过程DNS层次结构有根域名服务器,顶级域名服务器和权限域名服务器,本地域名服务器不在...
2020-04-07 00:00:00
329
原创 计算机网络必须知道的核心知识点(二)
计算机网络必须知道的核心知识点1、DNS域名层次结构和两种域名解析方式工作过程DNS层次结构有根域名服务器,顶级域名服务器和权限域名服务器,本地域名服务器不在层次结构中,但是他也是很重要的域名服务器。域名解析有两种方法:递归查询方式和递归与迭代相结合的方式。递归查询方式很少用,一般使用递归与迭代相结合方式比较多。2、WWW万维网的工作过程3、CookieCookie是一个存储...
2020-04-06 14:17:29
246
原创 计算机网络必须知道的核心知识点一
计算机网络必须知道的核心知识点一计算机网络必须知道的核心知识点1、ISO/OSI模型和TCP/IP模型2、OSI模型各层的传输单位,任务和功能3、OSI模型各层的传输单位,任务和功能4、五层协议:由OSI和TCP/IP折中而来的五层协议5、简易网络结构6、RFC:(request for comments)建议标准,因特网的所有标准都是以RFC的形式在因特网上发布7、计算机网络的分类:按照分布范围...
2020-04-06 12:57:24
628
原创 网络流之最大流
网络流之最大流前言概念解释实现思路代码实现前言根据百度百科解释网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关。网络流的理论和应用在不断发展,出现了具有增益的流、多终端流、多商品流以及网络流的分解与合成等新课题。网络流的应用已遍及通讯、运输、电力、工程规划、任务分派、设备更新以及计算机辅助设计等众多领域。概念解释通俗易懂的说就是从一个起点运输货物到终点,...
2020-03-29 22:00:09
438
原创 经典算法的性能分析与比较
排序算法是作为程序员必须掌握的基础技能之一,对经典的排序算法手到擒来是作为一个程序员的基本素养。这里的排序算法没有绝对的优劣,只有根据情况判断合不合适。所以只有我们对它的每一种排序算法的脉络了解的很清楚我们才能更好的在不同的算法之间选择最合适的。
2020-03-21 18:09:24
2031
1
原创 初入职场的IT人如何迅速的成长?
初入职场的IT人如何迅速的成长?1、过硬的基础知识2、吃透常用的框架3、强悍的工程能力4、总结学习java的必修课程算法进阶之路吃透linuxjava版算法进阶之路思想上的成长框架中的基础学习操作系统必修课程算法之路1、过硬的基础知识出入职场,我们没有丰富的项目经验,没有强悍的coding能力,也许也没有深厚的基础知识。但我们必须要有一颗热爱学习的心,热爱这个行业,我们才有可能走的更加长远。...
2020-03-19 00:24:51
327
原创 选取重复频率最高前k个数
选取重复频率最高前k个数题目描述题目解析题目描述在一个无序的整数数组中选取重复频率最高的前k个数,例如:整数数组[3,4,5,6,4,3,5,2,3],k=3,则结果集为[3,5,4]。题目解析第一种方法暴力解法:对所有数的频率进行统计,然后用排序算法进行排序找出前k个频率最高的数。如果我们按相对来说最优的排序算法快速排序来进行查找,快速排序代码如下:public static voi...
2020-03-17 18:14:40
575
原创 ARP毒化攻击
ARP毒化攻击什么是ARP协议?ARP报文格式wireshark抓包分析ARP毒化攻击信息拦截什么是ARP协议?根据计算机网络OSI七层参考模型,ARP属于第二层,数据链路层,携带计算机网卡的MAC地址。两台主机之间的通信必须知道对方的MAC地址才能进行通信,但是在只知道IP地址的情况下没有MAC地址如何进行通信呢?这时候就是ARP地址解析协议发挥作用的时候了。但是ARP是如何从IP地址解析到...
2020-03-14 21:18:06
817
2
原创 阶乘后的0个数
阶乘后的0个数题目描述题目解析代码实现时间复杂度题目描述假设自然数n,n的阶乘结果(n!)结尾0的个数,例如:3! = 3 * 2 * 1 = 6;末尾0个数等于0,5! = 5 * 4 * 3 * 2 * 1 = 120,末尾0个数等于1.题目解析第一种暴力解法,把结果值算出来之后不断除余10,计数每次等于0的个数。该方法计算量主要在阶乘,时间复杂度为O(n)。第二种解法,因为末尾是...
2020-03-13 21:40:11
498
原创 求众数
求众数题目描述题目解析代码实现复杂度计算题目描述求一个给定数组n,其中出现次数最多的元素。说明[4,1,4,5],众数是4。[2,2,1],众数是2。题目解析这道题解法众多,大家最想想到的暴力解法我就不说了,就是穷举统计所有的数出现的次数。这种算法在保证空间复杂度为O(1)的情况会出现两次循环,导致时间复杂度为O(n^2)。也可以实现时间复杂度为O(n)的情况,但是空间复杂度就会为O(...
2020-01-01 15:41:53
453
原创 有序数组的两数之和
有序数组的两数之和题目描述题目解析代码实现复杂度计算题目描述给定一个升序数组,给定一个目标值,在数组中找出两数之和等于目标值。说明:返回的下标值(index1 和 index2)从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 ...
2019-12-29 18:57:46
723
原创 逆波兰表示法
逆波兰表示法题目描述题目解析代码实现复杂度计算题目描述根据逆波兰表示法,求表达式的值。其实就是将中缀表达式转换成后缀表达式求值的过程。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9...
2019-12-29 13:36:11
195
原创 LRU缓存机制
LRU缓存机制题目描述题目解析代码实现复杂度计算题目描述根据使用频率来改变缓存队列,每次查询如果缓存中不在,则把查询结果放到缓存队列中,如果缓存队列满了,则根据使用频率来删除频率最低的数据,每次查询会增加该值的使用频率。PS:这里的使用频率是当前使用时间越靠前,使用频率越高。题目解析我的解题思路是用一个队列,每次来新值从队尾进入,查询命中后将值进入队尾,如果队列满后,从对头删除,将值插入...
2019-11-24 16:14:50
102
原创 搭建springboot和vue工程
搭建springboot和vue工程导入maven工程vue工程导入maven工程本人是基于IDEA讲解的,打开软件选择import project:在这里插入图片描述点击import project选择maven项目的pom.xml等待项目载入完成之后,等待下载pom.xml文件中的jar包。如果某些jar包不能下载的时候或者是公司内部的jar包,需要手动导入到maven仓库中...
2019-11-12 22:44:20
253
原创 环形链表
环形链表题目描述题目解析代码实现复杂度计算题目描述题目的意思是查找一个链表中是否有环,有环返回true,无环返回false。题目解析例如:1->2->4->5->1 则返回true,有环,5连回头部。1->3->5->3->4 返回true,有环,5指向3。1->3->2->4 返回false,没有环。这道题在lee...
2019-11-10 22:53:33
117
原创 单词拆分
单词拆分单词拆分题目描述题目解析代码实现复杂度分析单词拆分题目描述1、一个非空字符串中msg中可以拆分出在字典中得那些单词;2、是否在一个非空字典中完全可以被拆分成一个或多个单词。题目解析1、先说说可以拆分出那些单词在词典中,可以利用深度优先搜索,什么是深度优先搜索可以百度,如果不懂怎么用可以参考上一篇文章:分割回文串2、是否可以完全拆分成一个或多个单词思路是利用“动态规划算法”,...
2019-11-03 01:13:15
284
原创 分割回文串
分割回文串题目解析题目解析代码实现复杂度分析题目解析顾名思义就是给定一个字符串,找出其中所有的子回文串,例如:“aabaa”,所有的回文串有:[“a”,“a”,“b”,“a”,“a”],[“aa”,“aa”],[“aba”],[“aabaa”]。题目解析要找出所有的方法,有两种方法,深度优先搜索(DFS),广度优先搜索(BFS)。我这篇文章要讲的方式深度优先搜索,递归找出所有的字串。例如:...
2019-10-27 19:20:11
128
原创 验证回文串
验证回文串题目描述题目解析代码实现复杂度的计算题目描述一个字符串从前往后读和从后往前读相等,只包括字母和数字。示例:1输入:"hello,how are you?u,oy。era w,oh,oll eh";输出:true示例:2输入:"hello";输出:false题目解析解题思路是先全部转换为小写,设定两个指针,一个从前往后读,一个从后往前读。逐个匹配,遇到特殊字符跳过...
2019-10-20 15:02:50
104
原创 买卖股票的最佳时机
买卖股票的最佳时机题目描述题目解析状态转移方程边界代码实现复杂度的计算题目来源于 LeetCode 上第 123 号问题:买卖股票的最佳时机 III。题目难度为 Hard,目前通过率为 36.1% 。题目描述给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购...
2019-10-20 14:10:58
183
原创 打印杨辉三角形
打印杨辉三角形 打印杨辉三角形 杨辉三角形就是呈现金字塔型的结构 每个的数字表达式为:a(n,x) = a(n - 1,x) + a(n - 1,x - 1) 结构如下:11,11,2,11,3,3,11,4,6,4,1 解题思路:循环打印的行数,由于对称型每行的数据类型可以只计算一半,后面的一半完全对折过来。上代码:public static L...
2019-09-25 17:44:22
276
原创 有效的括号
有效的括号题目描述给定一个只包括"()[]{}"的字符串,判断字符串是否有效。有效字符串需满足:1. 左括号必须用相同类型的右括号闭合。2. 左括号必须以正确的顺序闭合。例如:“(asda)[(a)]{}” 满足“[{(windows)}]” 满足“)[asd]” 不满足“()]{}” 不满足“]kjlkj” 不满足解题思路:将字...
2019-09-01 16:21:45
135
原创 KMP算法:最长字符串匹配算法
KMP算法:最长字符串匹配算法查找模式串在目标串中的位置例如:目标串"asdasdaabbccaabsesdf" 模式串:“aabbccaabse” 则返回6,表示从索引下标是6开始匹配。(假设模式串索引为6‘a’的前缀:(a、aa、aab、aabb、aabbc、aabbcc、ab、abb、…)后缀也是一样,只不过是以索引6‘a’为分割的后面字符串所有字串类型。(a、aa、aab、aabs、...
2019-08-30 16:27:02
2963
1
原创 删除倒数第n个数
##删除倒数第n个数要求时间复杂度是O(n) 即通过一遍扫描就可以找出结果思路:通过两个指针,两个指针之间相差n,然后两个指针同时向后走,直到走到末尾,删除前一个指针指向的数即可。时间复杂度和空间复杂度都是O(n)public static List<Integer> find(List<Integer> list,int n){ int length =...
2019-08-30 13:21:44
177
原创 求解数组中三数和为零的结果
##求解数组中三数和为零的结果求解 a + b + c = 0;a、b、c不能重复例如:{-9, 1, 3, -5, 4, 5, 8};则返回[-9, 1, 8]和[-5, 1, 4]讲解思路:先将数组排序然后从头开始遍历,如果第一个数大于0,由于是排好序的所以后面不可能有出现和为0的情况。所以取出第一个数后,设目标树为target = 0 - a[k];剩下的求解思路就是target...
2019-08-29 18:21:02
393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人