自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 问答 (1)
  • 收藏
  • 关注

原创 Hbuilder自动补全突然失效(前提是有的项目可以,有的不行)

解决:如果没改过配置(如果你跟我一样对配置不懂,说明没改过),很有可能是语法错误,我查了下git记录,发现有个pages.json文件改了,因为我前端页面开发时,总是需要把新建页面设为首页,所以导致经常修改,但是出错也没注意,错误就是pages数组中,最后一个页面是不能加逗号的,属于语法上的错误。问题:注意前提是有的项目可以(不清楚就自己新建一个),有的不行。

2023-02-28 20:52:04 1225

原创 算法-栈和队列汇总

栈和队列都是比较简单的数据结构,这里就不做过多的解释,只解释对应到Java中的类(建议自行查看源码--极其友好)。

2023-01-14 16:14:49 753

原创 Git之路

git是一个分布式版本管理系统,简单点说就是版本管理,例如你看到的gitee或github上的那些开源项目,有很多版本,而且一个项目能让很多人一起协同参与,这都是管理系统的功劳,而git就是其中一种。当然自己用还没有到这种高大上的操作,但是学了git,当不懂git的人还在gitee上下载zip时,你一顿git操作猛如虎,相信能给你装不少B.

2022-11-15 15:00:50 567

原创 Redis之路

集群实现了对Redis的水平扩容,即启动N个Redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N,通过分区,使得集群中若有部分节点失效,集群也能继续处理命令请求。⚡️适合做缓存(例如热点数据,即访问量大的数据),计数器(incr/decr),分布式锁(setnx),消息队列(list双向链表),统一存放不同服务器的会话信息(session共享)(例如数据对应的版本号为1,操作时检查是否为1,为1则操作并修改版本号为2,不为1说明数据被修改过,当前无法进行操作)

2022-10-26 18:12:34 1549

原创 Aerospike之路

每个记录都是由多个k-v构成,其中一个k-v是PK:Key(而且这个字段是不区分大小写的,当你使用tools命令插入一条数据时,他是必须携带一个PK的),也就是存放主键的,他是唯一的,这个PK就是Key,如果使用java客户端添加数据的话,需要。💡更新的时候,map、list的修改操作会返回集合大小、其他默认返回null,get则返回这个bin,且返回的结果会根据bin进行分组(例如上面的record既返回函数修改结果,也返回查询结果)封装为一个列表。上面的操作都是基于同步方式,下面简单举例异步的方式。

2022-10-24 22:52:56 1435

原创 ElasticSearch之路

Kibana:负责数据展示等ElasticSearch:负责搜索等Logstash:负责数据采集等

2022-10-19 22:59:55 1181

原创 SpringBoot之路

它是spring的脚手架,能够快速构建项目,提高开发效率。一个引导spring项目创建、启动的工具。优点:配置简单;无需依赖外部的Servlet容器;项目可独立运行;提供自动装配、依赖管理、应用监控功能。

2022-10-16 16:18:20 648

原创 Kafka之路

发送⽅: ack是1 或者-1/all 可以防⽌消息丢失,如果要做到99.9999%,ack设成all,把min.insync.replicas配置成分区备份数消费⽅:把⾃动提交改为⼿动提交。

2022-10-16 14:42:38 804

原创 git本地文件deleted状态

当我们直接删除本地文件(windos delete),删除的文件会出现deleted状态,提交到远程仓库时,发现这些文件仍然存在,只是本地不存在了。命令,并没有把删除的文件添加到暂存区,所以自然没有提交和推送。然后正常提交、推送即可。

2022-10-07 15:22:52 3771

原创 混淆:0还是1

java和mysql中的substring的区别

2022-09-28 17:24:43 259

原创 图算法汇总

拓扑排序、最短路径、最小生成树

2022-09-12 19:08:48 139

原创 笔试选择题-图

做过笔试的同学应该知道,数据结构比较常考的除了栈,还有一个数据结构就是图。所以本篇文章就是用来理清图的一些简单的知识点。

2022-09-11 12:17:26 670

原创 笔试选择题-树

做过笔试的同学应该知道,数据结构比较常考的除了栈,还有一个数据结构就是图。所以本篇文章就是用来理清树的一些简单的知识点。

2022-09-10 18:38:26 465

原创 设计场景题

LRU,滑动窗口

2022-09-10 15:48:17 280

原创 力扣剑指Offer(每日打卡)

力扣剑指Offer

2022-09-10 11:01:53 359

原创 Ip地址基础--全篇无废话

参考计算机网络教程131-138。

2022-09-04 17:28:35 746

原创 二叉树汇总

文章目录遍历问题226. 翻转二叉树距离问题104. 二叉树的最大深度543. 二叉树的直径遍历问题226. 翻转二叉树力扣传送门思路:递归,DFS遍历利用DFS遍历每个节点时,交换左右子树的节点引用(经典两数交换) public TreeNode invertTree(TreeNode root) { if(root == null) return null; TreeNode tmp = root.left; root.left = invertTre

2022-08-28 12:43:45 187

转载 idea源码无法下载

cannot download sources,也就是无法下载源码

2022-08-03 14:36:30 1197

原创 史上最方便的Linux教程

蓝桥云课的linux课程,什么都不需要安装,微信扫 码登录后即可直接在线操作学习。不过教程有一些概念看不懂😅,建议看懂多少是多少吧,无需纠结。下面是我列举的一些重点。

2022-07-31 21:57:47 749

原创 组合系列--有排列就有组合

组合的题目的重点就是顺序问题,他不像排列,不同顺序代表一个排列,所以组合的遍历。当然最后一题是题目自己定义组合的,所以会有所不同。

2022-07-30 14:11:55 235

原创 双指针汇总(未完待续)

11. 盛最多水的容器力扣传送门

2022-07-15 20:05:54 107

原创 动态规划汇总(未完待续)

刚开始学或做动态规划的题目的时候,能用dp数组做出来的,就用dp数组,别理那些用几个临时变量的,你dp数组用多了,理解了,自然就会去改进,所以不要一上来就要求那么高,这样容易费时间又打击自己,想想一开始我们都是暴力法慢慢走过来的。.....................

2022-05-16 11:48:20 897

原创 贪心算法or规律题(未完待续)

1217. 玩筹码力扣传送门题意:把筹码(就是芯片😐)移到一个位置需要付出的代价,其中,奇数移到奇数不用钱,偶数同理;奇偶之间每移动一个筹码一块钱。思路:规律题①奇数都能移到同一个奇数a上,无需花费②偶数都能移到同一个偶数b上,无需花费③最终的消耗,就是a上的筹码数量(奇数个数)和b上的筹码数量(偶数个数)的最小值,因为我们只需要将数量小的移动到数量多的即可。class Solution { public int minCostToMoveChips(int[] position)

2022-05-11 10:24:47 157

原创 数组骚操作(未完待续)

预处理的意思就是在常规的遍历中,先计算某些需要的数据,而不是等到遍历每个点,再去计算一次。1582. 二进制矩阵中的特殊位置力扣传送门思路一:预处理对于特殊位置,需要保证该点所在的行,所在列的其它位置都是0,相当于行的元素之和、列的元素之和都为1。最容易想到的就是遍历到为1的点,就去判断该点所在的行和列是否符合,但这样对于同一行或者同一列的点,我们就要重复计算好多次。所以我们可以先计算并保存每一行、每一列的元素之和,在遍历判断时就可以直接读取保存的值,预处理使得每一行每一列只需计算一次。cla

2022-05-08 15:08:54 523

原创 哈希表汇总(未完待续)

文章目录哈希表数组442. 数组中重复的数据1394. 找出数组中的幸运数1122. 数组的相对排序字符串面试题 01.02. 判定是否互为字符重排哈希表数组442. 数组中重复的数据力扣传送门思路一:快排数组中的元素要么出现一次,要么出现两次,所以可先使用Arrays.sort,在对数组进行遍历,即比较左右两元素是否相等,相等则说明出现了两次,添加到结果集。代码略思路二:哈希表以元素作为下标,统计元素的个数,个数为2则添加到结果集。这里不需要HashMap,因为数组元素的大小访问在

2022-05-08 15:06:50 428

原创 链表汇总(未完待续)

链表基础

2022-05-06 21:04:47 510

原创 二叉树遍历汇总

必须有中序才能构建二叉树105. 从前序与中序遍历序列构造二叉树力扣传送门思路:先序中序遍历特点,具体看《算法笔记》—胡凡理解书内的思路即可,具体实现可以不用那么复杂,因为书里的区间下标比较复杂,这里的前序数组其实可以不用转化为区间。 private int count = 0;//用于前序数组遍历 public TreeNode buildTree(int[] preorder, int[] inorder) { return dfs(preorder,in

2022-05-05 11:15:57 143

原创 BFS和DFS搜索汇总(未完待续)

1091. 二进制矩阵中的最短路径力扣传送门思路:BFS从起点出发,往8个方向(左,右,上,下,左上,左下,右上,右下)分别遍历,也就是考虑每种情况,然后不断向外扩,而且仅考虑为0的节点。由于求路径长度,所以需要知道当节点到达最后一个节点时,是第几层的BFS,于是构造了Node节点,用于存放在矩阵中的位置和BFS层数。提示:如果不是很懂的话,建议学下BFS,特别是里面的迷宫例子,流程基本很像。这道题就是判断比较多,不然代码看着也不会那么吓人,其实基本步骤能写出来就行,后面那些判断再一点点加上去

2022-05-03 19:05:09 847

原创 821. 字符的最短距离

力扣传送门思路一:双指针假如指定字符为a第一种abcda,字符被指定字符包围,最小距离为到左右两边a的最小值,例如b的最小距离为min(a-b,b-a) => (4-1,1-0)第二种bcda,左边无指定字符,最小距离为a-b,例如b的最小距离为a-b => (3-0)第三种abcd,右边无指定字符,最小距离为b-a,例如b的最小距离为b-a => (1-0)class Solution { public int[] shortestToChar(String s

2022-04-19 19:31:33 297

原创 知识-广度和深度优先搜索

参见《算法笔记》--胡凡DFS深度优先搜索(Depth First Search),以走迷宫为例,当碰到岔道口时,总是选择其中一条岔路前进,在岔路上如果又遇到新的岔道口,仍然选择新岔道口的其中一条岔路前进,直到碰到死胡同才回退到最近的岔道口选择另一条路,不碰到死胡同就不回头。疑问:现实中该如何回退到最近的岔道口,一个两个可能还记得,要是多个咋返回,其实只需要一直贴着某一边墙壁走就行了(例如右边)。不过写代码中其实并没有这个问题,对于程序的回退就是函数执行结束返回。流程:理解:从例子.

2022-04-14 15:17:49 175

原创 排序题目汇总(基础+进阶)

冒泡、插入、选择、快排、归并、堆排序等等

2022-04-05 14:19:58 1388

原创 数据结构堆Heap实现思路

文章目录一、了解堆介绍数组存放实现思路二、实现堆(大顶堆为例,即书中所说)向下调整函数构建和删除操作向上调整函数和添加操作实现堆排序三、PriorityQueue四、练习参见《算法笔记》–胡凡一、了解堆介绍数组存放注意: 这里面说根节点不能存在0位置,应该是想说当子节点满足2x和2x+1这种规律时;而不是说不能,如果是0的话,规律变为2x+1和2x+2了。实现思路核心思想:编写调整函数,调整函数有两个方向,从上往下(用于构建堆,排序,删除节点)或者从下往上(用于添加节点)。具体举

2022-04-05 14:11:17 662

原创 75. 颜色分类

75. 颜色分类力扣传送门思路:双指针,遇到0就替换到左边;遇到2就替换到右边;遇到1不管;具体替换左边右边的那个数由两指针控制。动画题解class Solution { public void sortColors(int[] nums) { int l = 0, r = nums.length - 1; for(int i =0 ; i <= r; i++) { if(nums[i] == 0) {

2022-04-05 13:13:26 208

原创 二叉搜索树BST(分类三)

知识:BST:Binary Search Tree (二叉搜索树、二叉查找树、排序二叉树)概念:1、空树;2、左右子树均是BST;3、左子树所有节点的数据域均小于或等于根节点的数据域,右子树则大于性质:中序遍历的结果是有序的235. 二叉搜索树的最近公共祖先力扣传送门思路:方法一:从根出发,两次遍历,分别记录两节点各自的路径,它们的路径必有分叉点,而那个分叉点即为最近公共祖先。例如求0,5的最近公共祖先方法二:根据本题和二叉搜索树的特点,可得出左边的所有节点<根节点&lt.

2022-03-28 14:59:43 660 1

原创 集合求子集系列

力扣链接思路:做法和全排列类似,差别在于多了不同长度的子集和子集元素与顺序无关,对于不同长度的子集,可分别通过多次调用递归,也就是遍历长度为1,2,3,4等不同长度的子集。顺序无关这个其实就要求在递归过程中,防止重复遍历,具体解析见递归函数。 private List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> subsets(int[] n.

2022-03-19 15:19:51 444

原创 双指针汇总(未完待续)

是否符合,符合条件就是0左边的数是否等于0,且1右边的数是否等于1,可通过双指针,由内不断外扩,类似回文字符串。优化,取模的过程是从后往前遍历每个数,那么,如果同时用乘法,从后往前计算,得到的结果如果跟最初的值一样,说明是回文数,例如1221,反过来也是1221,但1231反过来是 1321。法二:从第一个字符开始,计算连续重复字符的个数tmp,直到出现转折的地方j, 往后与前面重复的数字不断比较,有多少个不一样的,就有多少个符合的字串,最多tmp个。法一:遍历每种长度的字符串,长度为1的,长度为2…...

2022-03-19 10:45:53 445

原创 647. 回文子串*

力扣链接思路:法一:遍历每种长度的字符串,长度为1的,长度为2…从两边往中间,对左右字符进行比较,也就是双指针由两边往中间靠拢。法二:以当前字符为中心,比较两边的字符,也就是双指针由中间往两边扩张。其中以当前字符为中心需要考虑两种情况,单个字符和两个字符。否则会有缺漏,不像法一,虽然暴力,但每种请况都考虑到。 int ans = 0; public int countSubstrings(String s) { ans = s.length(); //遍历每种长度的字符.

2022-03-19 09:51:04 308

原创 9. 回文数

力扣链接思路:法一:数字转字符串,从两边往中间遍历,进行字符比较,也就是双指针。法二:通过除法、模运算,得到数字的每一位,存入数组,再用双指针。 public boolean isPalindrome(int x) { String str =String.valueOf(x); int i = 0; int j = str.length()-1; while(i <= j && str.charAt(i) == str.cha.

2022-03-18 17:41:21 335

原创 全排列系列

力扣链接思路:解析来自算法书《算法笔记》——胡凡 public void digui(int[] nums,boolean[] hash,Integer[] res,int index) { //边界 if(index == nums.length) { //手动循环 List<Integer> list = new ArrayList<>(); for(Inte.

2022-03-16 18:49:42 459

原创 205. 同构字符串

力扣链接思路:由于题目规定字符顺序不可变,说明串与串之间的字符都是一一对应的,每一个映射关系可以出现多次,但必须相同,例如e->a,后面e->b或者b->a就不行了。根据映射关系唯一,可通过下标来标识,如果两字符构成的映射关系所对应的下标相同则符合。 public boolean isIsomorphic(String s, String t) { HashMap<Character,Integer> h1 = new HashMap&l.

2022-03-16 14:10:12 189

空空如也

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

TA关注的人

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