![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
备战2022实习
文章平均质量分 84
学习笔记
尔等同学
这个作者很懒,什么都没留下…
展开
-
剑指2022实习笔记目录
个人博客:http://erdengk.top/Github:https://github.com/erdengk目录算法刷题基础训练营部分Java-容器Java-并发JVM数据库-Redis计算机基础知识-网络计算机基础知识-操作系统记录下春招之前的学习笔记,视频中部分内容没有记录在内,请不要盲目照搬参考的博客也写在了每篇博客的最下面,感谢前人的总结,使得后来者可以走的更远。祝愿大家都能拿到满意的offer算法学习左程云老师的算法课:观看建议及个人学习体会刷题按照代码随想录的顺序刷题,然原创 2021-10-06 20:04:11 · 23254 阅读 · 12 评论 -
22年12月日常实习总结
22年日常实习总结原创 2023-01-01 14:44:27 · 1452 阅读 · 0 评论 -
算法训练营【7】线段树
线段树、IndexTree线段树:1,一种支持范围整体修改和范围整体查询的数据结构2,解决的问题范畴:大范围信息可以只由左、右两侧信息加工出,而不必遍历左右两个子范围的具体状况线段树实例给定一个数组arr,用户希望你实现如下三个方法1)void add(int L, int R, int V) : 让数组arr[L…R]上每个数都加上V2)void update(int L, int R, int V) : 让数组arr[L…R]上每个数都变成V3)int sum(int L, in原创 2022-04-27 17:01:22 · 2287 阅读 · 0 评论 -
分布式协议与算法实战【1】拜占庭将军问题
本系列为学习极客时间的 《分布式协议与算法实战》拜占庭将军问题:有叛徒的情况下,如何才能达成共识?共识难题如何在可能有误导信息的情况下,采用合适的通讯机制,让多个将军达成共识,制定一致性的作战计划?假设只有 3 个国家要攻打秦国,这三个国家的三位将军,咱们简单点儿,分别叫齐、楚、燕。同时,又因为秦国很强大,所以只有半数以上的将军参与进攻,才能击败敌人(注意,这里是假设哈,你别较真),在这个期间,将军们彼此之间需要通过信使传递消息,然后协商一致之后,才能在同一时间点发动进。二忠一叛的难题.原创 2022-03-19 21:43:49 · 2095 阅读 · 0 评论 -
【随想录12】01背包练习
动态规划01背包练习01背包的题目:416. 分割等和子集1049. 最后一块石头的重量 II494. 目标和474. 一和零416. 分割等和子集类加所有数字为sum,如果sum为奇数返回false然后试着将所有数字分成两份,如果其中有一份能达到sum/2 ,返回true,否则为false。DFS, 暴力过不了所有的点 public static boolean canPart( int[] nums ) { int sum = 0; for原创 2022-03-08 17:13:14 · 582 阅读 · 0 评论 -
【随想录11】动态规划-01背包
背包问题/01背包背包问题泛指一类「给定价值与成本」,同时「限定决策规则」,在这样的条件下,如何实现价值最大化的问题【1】01背包「01背包」是指给定物品价值与体积(对应了「给定价值与成本」),在规定容量下(对应了「限定决策规则」)如何使得所选物品的总价值最大【1】01背包的题目:416. 分割等和子集1049. 最后一块石头的重量 II494. 目标和474. 一和零经典01背包给定两个长度都为N的数组weights和values,weights[i]和values[i]分别代表i原创 2022-03-02 23:23:31 · 496 阅读 · 0 评论 -
【随想录10-番外 】前缀和数组
前缀和学习自 小而美的算法技巧:前缀和数组303. 区域和检索 - 数组不可变304. 二维区域和检索 - 矩阵不可变560. 和为 K 的子数组1314. 矩阵区域和class NumArray { int []arr; public NumArray(int[] nums) { arr = new int [nums.length+1]; arr[0]=nums[0]; for(int i =1 ; i<arr.leng原创 2022-01-25 19:48:30 · 608 阅读 · 0 评论 -
【MySQL 45讲-3】第3讲-事务隔离
事务隔离MySQL原生引擎MyISAM不支持事务,所以被InnoDB取代。事务, ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)redis 的隔离性是?redis 的事务中的隔离性并没有保证原子性,已经做过的操作是不会rollback的。它的隔离性是指其他事务不会干扰到它自己的事务。隔离性与隔离级别隔离性Isolation:一个事务执行时不能受其他事务的干扰。隔离级别读未提交 read uncommi.原创 2022-01-20 15:58:29 · 656 阅读 · 0 评论 -
【随想录9 】回溯及模版(子集、排列问题)
模版// 结果集合 public List<List<Integer>> res = new ArrayList<>();// 路径集合 public LinkedList<Integer> path = new LinkedList<>(); public List<List<Integer>> model(int[] nums) { // 根据是否需要指定开始位置进行传参原创 2022-01-10 16:17:45 · 545 阅读 · 0 评论 -
左老师算法课学习建议
左老师算法课学习建议以下均为个人看法,如果与你想法冲突,以你为准据我所知,左老师讲算法的课主要是两套第一套是在牛客讲的,分为基础班,基础提升,中级班,高级班第二套应该是在马士兵老师那讲的,分为基础班,基础提升,训练营区分方法主要是看ppt和讲课方式ppt是pdf 且 带牛客字样的,就是牛客那套ppt是ppt且上课有用腾讯课堂讲课的,就是马老师的那套我个人看过牛客的基础班,没有完全学完现在在看马士兵老师这边的基础班总体来说两边内容差不多,但马老师这边的课新加了一些东西个人觉得以上两套课,原创 2021-12-12 21:12:07 · 1246 阅读 · 0 评论 -
算法训练营【6】Morris遍历及其相关扩展
请问原创 2021-11-27 16:35:23 · 466 阅读 · 0 评论 -
算法训练营【5】Manacher算法及其扩展
文章目录Manacher算法暴力解法Manacher 算法算法步骤添加字符变成回文串Manacher算法时间复杂度O(N) 快速求出字符串的最长回文子串的长度abccba 最长为61124211 最长为7暴力解法以每一个字符为中心向两边扩,但是这种办法只能保证奇数的解决,无法计算到偶数的解决方法为,在每两个字符中间加一个字符,头尾也加一个字符,然后再以每个字符为中心往两边扩充,最后得出的结果都/2 (向下取整)最大的那个数字就是最长回文字串的长度了时间复杂度为n方最坏情况为每个字符都相原创 2021-11-22 15:11:34 · 845 阅读 · 0 评论 -
Redis[9] Redis6核心特性介绍
文章目录**Redis6核心特性介绍-多线程****acl 权限控制****客户端缓存**Redis6核心特性介绍-多线程新版Redis6特性讲解支持多线程redis6多线程只是用来处理网络数据的读写和协议解析上,底层数据操作还是单线程执行命令仍然是单线程,之所以这么设计是不想因为多线程而变得复杂,需要去控制 key、lua、事务,LPUSH/LPOP 等等的并发问题默认不开启io-threads-do-reads yesio-threads 线程数官方建议 ( 线程数小于机器原创 2021-11-12 21:36:09 · 1271 阅读 · 0 评论 -
Redis[8] Redis6.X节点高可用之Cluster集群
文章目录**Redis6.X节点高可用之Cluster集群****Cluster集群**高可用架构总结Redis6.X节点高可用之Cluster集群Cluster数据分片和虚拟哈希槽介绍背景主节点的写能力和存储能力受限单台机器无法满足需求,因此把数据分散存储到多个机器类似案例:mysql分库分表常见的数据分区算法哈希取模对选择的 partitioning key 计算其哈希值,得到的哈希值就是对应的分区范围分片通过确定分区键是否在某个范围内来选择分区原创 2021-11-12 21:35:22 · 1238 阅读 · 0 评论 -
Redis[7] Redis节点高可用监控之Sentinel
文章目录Redis 节点高可用监控之Sentinel**Sentinel哨兵****主从+Sentinel哨兵集群**Redis 节点高可用监控之Sentinel背景前面搭建了主从,当主服务器宕机后,需要手动把一台从服务器切换为主服务器,人工干预费事费力,还会造成一段时间内服务不可用哨兵模式介绍Redis提供了哨兵的命令,是一个独立的进程原理 哨兵通过发送命令给多个节点,等待Redis服务器响应,从而监控运行的多个Redis实例的运行情况当哨兵监测到master宕机,会自动将sl原创 2021-11-12 21:34:30 · 230 阅读 · 0 评论 -
Redis[6] 主从复制+读写分离
文章目录redis6主从复制+读写分离**Redis6.X主从复制+读写分离介绍****主从复制-读写分离原理解析**redis6主从复制+读写分离Redis6.X主从复制+读写分离介绍背景单机部署简单,但是可靠性低,且不能很好利用CPU多核处理能力生产环境-必须要保证高可用-一般不可能单机部署读写分离是可用性要求不高、性能要求较高、数据规模小的情况;目标读写分离,扩展主节点的读能力,分担主节点读压力容灾恢复,一旦主节点宕机,从节点作为主节点的备份可以随时顶上来主从复制-原创 2021-11-12 21:33:05 · 194 阅读 · 0 评论 -
Redis[5] key的过期时间删除策略、实现lru算法、持久化配置
Redis[5] key的过期时间删除策略、持久化配置Redis6的key过期时间删除策略背景redis的key配置了过期时间,这个是怎么被删除的redis数据明明过期了,怎么还占用着内存?Redis 就只能用 10G,你要是往里面写了 20G 的数据,会发生什么?淘汰哪些数据redis key过期策略定期删除+惰性删除。Redis如何淘汰过期的keys: set name xdclass 3600定期删除:隔一段时间,就随机抽取一些设置了过期时间的 key,检原创 2021-11-12 20:55:45 · 912 阅读 · 0 评论 -
Redis[4] 案例介绍+缓存击穿、缓存雪崩、缓存穿透
redis4 案例介绍+缓存击穿、缓存雪崩、缓存穿透分布式缓存必考题之缓存击穿+解决方案缓存击穿 (某个热点key缓存失效了)缓存中没有但数据库中有的数据,假如是热点数据,那key在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力增大。和缓存雪崩的区别在于这里针对某一key缓存,后者则是很多key。预防设置热点数据不过期定时任务定时更新缓存设置互斥锁多个请求到达服务器时,某个请求发现缓存过期了,于是加个锁,然后去数据库请求数据然后更新到缓原创 2021-11-12 20:51:56 · 358 阅读 · 0 评论 -
算法训练营【3】蓄水池算法+KMP算法及其扩展
蓄水池算法+KMP算法蓄水池算法解决的问题:假设有一个源源吐出不同球的机器,只有装下10个球的袋子,每一个吐出的球,要么放入袋子,要么永远扔掉如何做到机器吐出每一个球之后,所有吐出的球都等概率被放进袋子里应用:抽奖假设有个随机函数f(n),可以返回1-n之间的数1-10号直接进袋子10号以后的第k号球,使用随机函数f(k),(相当于是 10/k )返回的如果是大于10的数字,那就不入袋,如果是10以内的,则随机选一个袋内的球扔出去,然后将新的球装入袋内。public static c原创 2021-11-12 20:41:27 · 2435 阅读 · 0 评论 -
Redis[3] 面试题:设计分布式锁+代码实现原生分布式锁
文章目录Redis[3] 面试题:设计分布式锁+代码实现原生分布式锁问题一 确保锁一定能释放问题二:业务超时,存在其他线程误删问题三 :判断锁是否为自己加的锁和 删除锁之间存在时间间隔问题四:如何避免业务执行时间过长,锁过期了实际运行效果截图Redis[3] 面试题:设计分布式锁+代码实现原生分布式锁分布式锁的用途就是保证同一时间只有一个客户端可以对共享资源进行操作可以运用到优惠券领劵限制张数、商品库存超卖这些场景为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进原创 2021-11-08 13:33:54 · 994 阅读 · 0 评论 -
Redis[2] redis 配置及分布式锁介绍
redis[2] redis 配置及分布式锁介绍学习xiao D课堂的项目笔记SpringDataRedis配置RedisTemplate介绍RedisTemplate介绍ValueOperations:简单K-V操作SetOperations:set类型数据操作ZSetOperations:zset类型数据操作HashOperations:针对map类型的数据操作ListOperations:list类型的数据操作RedisTemplate和StringRedisTemplate原创 2021-11-08 13:24:02 · 215 阅读 · 0 评论 -
Redis [1] 简介、数据结构、应用场景
Redis [1] 简介、数据结构、应用场景学习小d课堂的笔记简介:Nosql介绍和Reidis介绍什么是Redis属于NoSQL的⼀种 ( Not Only SQL )是不同于传统的关系数据库的数据库管理系统的统称其两者最重要的区别是NoSQL不使⽤SQL作为查询语⾔。NoSQL数据存储可以不需要固定的表格模式键 - 值对存储,列存储,⽂档存储,图形数据库NoSql:redis、memcached、mongodb、Hbase什么是缓存程序经常要调⽤的对象存在内存中,⽅便其使⽤时可以快速原创 2021-11-08 13:22:53 · 1145 阅读 · 0 评论 -
算法训练营【2】类似斐波那契数列的递归+快速幂
文章目录类似斐波那契数列的递归+快速幂马走棋盘问题改动态规划斐波那契数列快速幂解[剑指 Offer 10- I. 斐波那契数列](https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/)值得记忆上楼问题若一个人一次可以上k步,p步,m步母牛问题字符问题瓷砖问题类似斐波那契数列的递归+快速幂如果某个递归,除了初始项之外,具有如下的形式F(N) = C1 * F(N) + C2 * F(N-1) + … + Ck * F(N-k) ( C1…原创 2021-11-06 13:31:03 · 402 阅读 · 0 评论 -
算法训练营【1】 单调栈和窗口
文章目录单调栈和窗口滑动窗口滑动内最大值和最小值的更新结构[剑指 Offer 59 - I. 滑动窗口的最大值](https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/)求达标子数组的数量单调栈没有重复值:有重复值:题目三 子树组特定信息的问题预处理技巧:[84. 柱状图中最大的矩形](https://leetcode-cn.com/problems/largest-rectangle-in-histogram/)法原创 2021-11-04 20:53:49 · 798 阅读 · 8 评论 -
算法模板 [1] 二叉树(结合课程总结的算法模板)
文章目录二叉树模版遍历模版二叉树非递归遍历中序前序后序层次遍历非递归注意事项递归模版递归套路步骤判断是否为平衡二叉树返回整棵二叉树的最大距离返回这颗二叉树中最大的二叉搜索子树的节点数派对的最大快乐值给定一棵二叉树的头节点head,返回这颗二叉树是不是满二叉树返回这颗二叉树中最大的二叉搜索子树的头节点给定一棵二叉树的头节点head,返回这颗二叉树中是不是完全二叉树层次遍历递归返回a和b的最低公共祖先map+set递归二叉树模版据不完全总结,二叉树的题大致可以分为两种,一种是通过前序、中序、后序、层序遍历来原创 2021-10-29 11:41:42 · 879 阅读 · 0 评论 -
算法[7] 暴力递归到动态规划
文章目录暴力递归到动态规划什么暴力递归可以继续优化?暴力递归和动态规划的关系面试题和动态规划的关系如何找到某个问题的动态规划方式?面试中设计暴力递归过程的原则常见的4种尝试模型机器人路线问题暴力递归动态规划背包问题递归到动态规划字符串转化问题递归到动态规划动态规划拿牌问题递归到动态规划暴力递归动规拿钞票问题递归到动态规划动态规划字符贴纸问题最长公共子序列问题两个样本问题模型业务限制的尝试模型暴力递归到动态规划题目—》找到暴力递归写法(尝试)—》把可变参数,不讲究组织的形式,做缓存,那就是记忆化搜索的方原创 2021-10-24 20:30:58 · 3013 阅读 · 0 评论 -
算法[6] 递归、动态规划
文章目录暴力递归●打印n层汉诺塔从最左边移动到最右边的全部过程●打印一个字符串的全部子序列,包括空字符串●打印一个字符串的全部子序列,要求不要出现重复字面值的子序列●打印一个字符串的全部排列打印一个字符串的全部排列,要求不要出现重复的排列给你一个栈,请你逆序这个栈,不能申请额外的数据结构,只能使用递归函数。如何实现?从左往右的尝试模型1从左往右的尝试模型2范围上尝试的模型N皇后位运算优化暴力递归暴力递归就是尝试1,把问题转化为规模缩小了的同类问题的子问题2,有明确的不需要继续进行递归的条件(base原创 2021-10-23 12:11:19 · 921 阅读 · 1 评论 -
算法[5] 并查集、图
目录并查集、图并查集岛屿问题切分矩阵,并行图图:点:边:图生成器:广(宽)度优先遍历深度优先遍历拓扑排序算法最小生成树以及相关算法kruskal算法(K算法) 适用范围:要求无向图迪杰斯特拉算法并查集、图并查集有若干个样本a、b、C、d类型假设是V2)在并查集中一开始认为每个样本都在单独的集合里3)用户可以在任何时候调用如下两个方法:boolean isSameSet(Vx, V y):查询样本x和样本y是否属于一个集合void union(V x, V y):把x和y各自所在集合的所有样本原创 2021-10-23 12:10:16 · 1364 阅读 · 1 评论 -
算法[4] 二叉树
目录二叉树及其递归套路递归序非递归遍历前序遍历后序非递归:中序非递归实现二叉树的按层遍历求二叉树最大宽度二叉树的序列化和反序列化层序遍历序列化反序列化层序反序列如何设计一个打印整棵树的打印函数给你二叉树中的某个节点,返回该节点的后继节点纸条折痕问题二叉树的递归套路递归套路步骤判断是否为平衡二叉树返回整棵二叉树的最大距离返回这颗二叉树中最大的二叉搜索子树的节点数派对的最大快乐值二叉树及其递归套路二叉树的先序、中序、后序遍历先序:任何子树的处理顺序都是,先头节点、再左子树、然后右子树中序:任何子树的处理原创 2021-10-23 12:08:49 · 930 阅读 · 1 评论 -
算法[3] 前缀树、链表相关题目
前缀树、链表相关题目前缀树前缀树又名字典树,单词查找树,Trie树,多路树形结构,和hash效率有一拼,是一种用于快速检索的多叉树结构。多用于词频搜索或者模糊查询。查询时只与样本长度有关,而与样本量无关。1)单个字符串中,字符从前到后的加到-棵多叉树上2)字符放在路上,节点上有专属的数据项(常 见的是pass和end值)3)所有样本都这样添加,如果没有路就新建,如有路就复用4)沿途节点的pass值增加1,每个字符串结束时来到的节点end值增加1可以完成前缀相关的查询/pic:mw://原创 2021-10-16 10:32:33 · 1180 阅读 · 1 评论 -
算法[2] 堆、桶排序、计数排序、基数排序
堆、桶排序、计数排序、基数排序1、堆堆排序流程算法过程:首先将待排序的数组构造成一个大根堆,此时,整个数组的最大值就是堆结构的顶端将顶端的数与末尾的数交换,此时,末尾的数为最大值,剩余待排序数组个数为n-1将剩余的n-1个数再构造成大根堆,再将顶端数与n-1位置的数交换,如此反复执行,便能得到有序数组 //堆排序 public static void heapSort(int[] arr) { //构造大根堆 heapInsert(arr原创 2021-10-08 14:03:50 · 1348 阅读 · 0 评论 -
算法[1] 选择、插入、归并+快排+对数器
目录1选择、插入、归并+快排+对数器1、异或::交换两个值::::怎么把一个int类型的数,提取出最右侧的1来?::::一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这两种数?::时间复杂度2、归并排序递归版本:非递归:2.1小和数3、快排问题1荷兰国旗问题经典快排选择排序插入排序:4、对数器1)产生一个长度随机的数组(可能为正,也可能为负,0)2)绝对正确的方法3)大样本测试视频观看顺序1选择、插入、归并+快排+对数器1、异或异或运算,相同为0,不同为1同或运输,相同为1,不原创 2021-10-07 12:06:47 · 5175 阅读 · 11 评论