- 博客(332)
- 收藏
- 关注
原创 【Leetcode字符串--字符串变换/进制的转换】HJ1.字符串最后一个单词的长度 HJ2.计算某字符出现次数 HJ30.字符串合并处理
【Leetcode字符串--字符串变换/进制的转换】HJ1.字符串最后一个单词的长度 HJ2.计算某字符出现次数 HJ30.字符串合并处理
2022-08-02 12:55:12 604
原创 【Leetcode数组--排序+辗转相除法最大公约数】6122.使数组可以被整除的最少删除次数
【Leetcode数组--排序+辗转相除法最大公约数】6122.使数组可以被整除的最少删除次数。
2022-07-17 16:35:49 370
原创 【Leetcode字符串--字符串下标排序】6121.裁剪数字后查询第 K 小的数字
【Leetcode字符串--字符串下标排序】6121.裁剪数字后查询第K小的数字。
2022-07-17 16:13:53 1433
原创 【Leetcode字符串--公共前缀】BM84.最长公共前缀
统计连通块技巧!连通块结束的时候统计!每次循环都会对所有的字符串的point位置遍历,如果所有的point位置都相同就在结果集加上point位的字符,如果有一个不一样就break掉。实现角度是if(cur == pre&&i == strs.length-1) sb.append(cur); 如果是等于前一个字符并且是最后一个字符,说明point位置,所有字符串都相同了,这时候才会加到结果集中。...
2022-07-12 14:52:09 1741
原创 【Leetcode二叉树--最大路径和】124.二叉树中的最大路径和
1.思想首先得是后序遍历,根节点拿到左右子树的最大路径和,才能判断当前路径和>2.max = Math.max(max, root.val+leftSum+rightSum) 维护一个最大值就是两边子树,从根节点到某个节点最大值加起来,也就是经过根节点的最大值,也就是左子树的某个节点到右子树的某个节点经过根节点的最大值>3.sum += Math.max(leftSum, rightSum) sum就是从根节点到左右子树的某个节点的最大值,其实是根到子节点...
2022-07-11 21:57:51 1435
原创 【Leetcode周赛--贪心算法--实时排序】6112.装满杯子需要的最短总时长
【Leetcode周赛--贪心算法--实时排序】6112.装满杯子需要的最短总时长
2022-07-10 14:39:37 297
原创 【GoLand】GoLand定时任务 github/robfig/cron/v3 使用与源码解析
文章目录Cron 源码阅读源码概览1.核心数据结构和接口type Entry tructtype Cron structinterface2.对接口的实现ScheduleParser 的实现Schedule 的实现Job 的实现总结New()AddFunc()Entries() 和 Entry()Remove()Stop()Start()对 timer.C 的处理对 c.add 的处理对 c.snapshot 的处理对 c.stop 的处理对 c.remove 的处理OptionWithLocationWi
2022-04-10 17:31:30 2921 1
原创 【Mysql】Mysql 5.7半同步复制技术
文章目录一、复制架构衍生史二、半同步复制技术1.半同步复制具体特性:2.半同步复制潜在问题:三、MySQL 5.6半同步复制配置四、MySQL 5.7半同步复制的改进原文链接一、复制架构衍生史在谈这个特性之前,我们先来看看MySQL的复制架构衍生史。在2000年,MySQL 3.23.15版本引入了Replication。Replication作为一种准实时同步方式,得到广泛应用。这个时候的Replicaton的实现涉及到两个线程,一个在Master,一个在Slave。Slave的I/O和SQL功能
2022-03-26 22:17:35 784
原创 【面试题】商品超买超卖问题分析及实战
文章目录项目场景:原因分析:原因说明:解决方案:代码实战:1、synchronized方式2、redis分布式锁3、悲观锁4、乐观锁5、where条件6、unsigned 非负字段限制为什么不通过事务隔离级别控制事务代码的并发总结:项目场景:原文链接商品超买超卖是高并发下非常典型的问题,也是面试中秒杀场景常常会问到的问题。常见的问题有:1、怎么设计一个秒杀系统?2、商品超买、超卖问题产生的原因?3、怎么防止商品出现超买|超卖问题?4、乐观锁和悲观锁的适用场景是什么?5、提高事务的隔离级别能
2022-03-21 17:25:45 2113 1
原创 【Spring】Spring中实现单例模式
文章目录1.spring中的单例是通过单例注册表实现的2.实战演示3.Spring怎么实现单例模式1.spring中的单例是通过单例注册表实现的原文链接在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例),默认单例模式。singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new。2.实战演示代码详见上一篇文章
2022-03-21 17:06:06 2007
原创 【面试题】单例模式在项目实战中的几个应用
文章目录一、单例模式简单理解二、单例模式的几种常见写法三、单例模式在Redis工具类中的使用四、单例模式在线程池创建中的使用一、单例模式简单理解原文链接单例模式:即某个类在程序运行过程中只被实例化一次,也就是说该类在程序的生存周期里只有一个实例对象。使用单例模式好处:由于这个类只实例化一次,不管多少个类中用到了这个类,也都只有一个该类的对象。因此,减少了类实例对象的创建–>减小了GC压力–>提升了程序的性能。二、单例模式的几种常见写法/** * 饿汉式(线程安全)。类加载时就创
2022-03-21 16:00:49 677
原创 【面试题】内存能存放的URL去重操作
文章目录URL 去重思路URL 去重实现方案1.使用 Java 的 Set 集合判重2.Redis Set 集合去重3.数据库去重4.唯一索引去重5.Guava 布隆过滤器去重6.Redis 布隆过滤器去重总结URL 去重思路原文链接在不考虑业务场景和数据量的情况下,我们可以使用以下方案来实现 URL 的重复判断:使用 Java 的 Set 集合,根据添加时的结果来判断 URL 是否重复(添加成功表示 URL 不重复);使用 Redis 中的 Set 集合,根据添加时的结果来判断 URL 是否重
2022-03-21 15:39:45 161
原创 【面试算法题】内存放不下的大数据URL的相关去重等操作
文章目录题目一:有10 亿个 url,每个 url 大小小于 56B,要求去重,内存只给你4G题目二:给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?题目三:有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M,要求返回频数最高的100个词。题目四:现有海量日志数据保存在一个超级大的文件中,该文件无法直接读入内存,要求从中提取某天出访问百度次数最多的那个IP。原文链接1原文链接2题目一:有10 亿个
2022-03-21 15:06:51 3279
原创 【计算机网络】计算机网络IO模型
文章目录1.阻塞 IO2.非阻塞 IO3.IO 多路复用4.select4.poll5.epoll6.总结为了讲多路复用,当然还是要跟风,采用鞭尸的思路,先讲讲传统的网络 IO 的弊端,用拉踩的方式捧起多路复用 IO 的优势。为了方便理解,以下所有代码都是伪代码,知道其表达的意思即可。1.阻塞 IO服务端为了处理客户端的连接和请求的数据,写了如下代码。listenfd = socket(); // 打开一个网络通信端口bind(listenfd); // 绑定listen(
2022-03-19 22:04:02 207
原创 【计算机网络】服务端和客户端最大支持多少tcp连接?如何分析?
文章目录(一)引用文章(二)简单分析:1.基本概念:TCP四元组2.多个客户端连接一个服务端最大支持最大多少tcp连接?3.一个客户端连接一个服务端最大支持多少个tcp连接?(二)全面分析1.TCP连接的创建2.端口号的限制3.文件描述符的限制4.线程数量的限制5.内存的限制6.CPU的限制7.总结8.后记(一)引用文章Linux 中每个 TCP 连接最少占用多少内存?你管这破玩意叫 IO 多路复用?原文链接1原文链接2(二)简单分析:1.基本概念:TCP四元组所谓tcp连接是由一个四元组
2022-03-19 20:19:06 5263 1
原创 【计算机网络】Socket详解
文章目录1.什么是TCP/IP,UDP2.Socket在哪里呢?3.Socket是什么呢?4.你会使用它们吗?5.网络中进程之间如何通信?6.什么是Socket?7.socket的基本操作7.1 socket()函数7.2 bind()函数7.3 listen()、connect()函数7.4 accept()函数7.5 read()、write()等函数7.6 close()函数8.socket中TCP的三次握手建立连接详解9.socket中TCP的四次握手释放连接详解10.下面给出实现的一个实例1.什
2022-03-19 16:38:03 1651 1
原创 【OS】进程/线程/协程区别以及Go协程调度模型
文章目录一、概念理解1、进程2、线程3、协程二、理解区分1、进程、线程和协程之间概念的区别2、goroutine和协程区别3、其他方面的比较(1)内存消耗方面(2)线程和 goroutine 切换调度开销方面三、goroutine协程1. goroutine协程实现原理2. goroutine调度(1)对线程来说,有三种映射(用户线程与内核线程的因素)模型:(2)go调度里面有三个角色:三角形M代表内核线程,正方形P代表上下文,圆形G代表协程:![goroutine1](https://img-blog.c
2022-03-16 18:24:57 724
原创 【计算机网络】Get和Post请求的差别
文章目录1.HTTP简介2.HTTP请求方法3.根据w3c标准,GET和POST区别如下:4.GET和POST的真正区别1.HTTP简介原文链接HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。2.HTTP请求方法HTTP请求最初设定了八种方法,这八种方法本质上没有任何区别。只是让请求,更加有语义而已。请求方式描述GET请求指定的页
2022-03-16 15:03:31 258
原创 【计算机网络】从输入URL到页面加载发生了什么
文章目录https://segmentfault.com/a/1190000006879700https://blog.fundebug.com/2019/02/28/what-happens-from-url-to-webpage/
2022-03-07 21:42:44 108
原创 【Leetcode二叉搜索树--动态规划】96. 不同的二叉搜索树
文章目录Leetcode961.问题描述2.解决方案Leetcode961.问题描述2.解决方案1.本题采用动态规划,说实话不看题解是不可能想出来的,思路下面有解释,我们更多关注本题做完的帮助2.第一就是记住,这种思路dp[i]依然就是答案,即以i个节点的二叉搜索树的数量,然后进行状态转移,状态转移时需要对j进行遍历class Solution { public int numTrees(int n) { //1.初始化 int[] dp=n
2022-02-20 22:13:21 383 2
原创 【Leetcode数组--排序/去重】75.颜色分类 HJ3.明明的随机数
1.这是一道排序题,难处在于如何优雅的排序,大致思想就是小的往前换,然后最终就是有序了,也可以双指针,本题采用单指针,然后用head维护要更新的地方,其实说实话也类似双指针,因为head是一个指针,遍历算第二个指针。2.抽象一下思想就是双指针,一个指针选取,一个指针更新。...
2022-02-18 20:41:27 353 2
原创 【etcd】etcd介绍
文章目录1.etcd和redis区别2.etcd使用及介绍1.etcd和redis区别etcd和redis的比较和日常使用场景2.etcd使用及介绍etcd篇—基本介绍Etcd 使用入门
2022-02-17 11:41:30 600 2
原创 【Leetcode动态规划--矩阵路径数/和】62.不同路径 63.不同路径 II (矩阵路径数) 64.最小路径和(矩阵路径和)
文章目录1.问题描述2.解决方案1.问题描述2.解决方案动态规划,类似于爬楼梯class Solution { public int uniquePaths(int m, int n) { //1.初始化 int[][] ints = new int[m][n]; //2.边界,第一行第一列只有一种方法到达 for(int i=0; i<n; i++) ints[0][i]=1; for(int
2022-02-13 15:42:57 514 1
原创 【JavaSE】Java集合框架方法
文章目录1.map.getOrDefault()2.Arrays.sort()3.HashMap中的values()1.map.getOrDefault()2.Arrays.sort()https://blog.csdn.net/qq_41763225/article/details/828901223.HashMap中的values()
2022-02-13 15:14:39 255 1
原创 【Leetcode字符串--字符哈希/字符串相同点】49.字母异位词分组 HJ27.查找兄弟单词
文章目录Leetcode491.问题描述2.解决方案Leetcode491.问题描述2.解决方案1.一看题就知道大概要用到hash了,但是如何优雅地使用哈希是个问题,从这道题,我们能够得出一个以后字符串的相关哈希的思路就是找共同点作为key,然后value作为具有相同点的元素的集合,其实找相同点这个比较容易想到,但是这个相同点怎么优雅的比较是个问题,一开始我想的是把每一个字符串做成一个map,key是字符,value是出现次数,这样如果map相同那肯定就符合条件了不是,但是很明显很丑陋这个
2022-02-13 15:14:17 389 1
原创 【Leetcode数组--二分法查找变形】33. 搜索旋转排序数组
文章目录Leetcode331.问题描述2.解决方案解法一:暴力法o(n)解法二:二分查找变形o(logn)Leetcode331.问题描述2.解决方案解法一:暴力法o(n)class Solution { public int search(int[] nums, int target) { int i; for (i = 0; i < nums.length ; i++) { if(nums[i]==target) ret
2022-01-20 21:50:53 417 2
原创 【Leetcode数组】31. 下一个排列
文章目录Leetcode311.问题描述2.解决方案Leetcode311.问题描述2.解决方案总结一下步骤就是(记住了思路就很清晰,实现也很简单,关键就是如何设计一个算法保证左边较小数靠右,右边较大数尽可能小1.找到 左边较小数(尽量靠右),右边较大数(尽可能小) ,并且交换-------至于找到符合规则的数对的算法,下面有描述,感觉很难归纳出来,记住吧!!2.然后升序排列右边较大数交换后的位置的后面数字序列class Solution { public void n
2022-01-20 20:55:56 4321 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人