- 博客(155)
- 资源 (18)
- 收藏
- 关注
原创 24届Java&Go秋招心得总结
脸皮得厚,得学会大胆,先最好调研一下行情,不要被hr带了节奏,hr问你目标薪资多少,先不要急着回答,可以先问一下薪资结构,然后继续展示你的优势,然后可以访问下hr这边可以开到多少,一般hr开出来的是可以让你继续a的薪资,你需要拿出一些offer来argue,并一定要存在,可以拿出相近的互联网公司来a薪资,我有好几家都是说少了,有点可惜。我是从2023年5、6月份开始面试的,提前批也投递了一些,像百度是提前批的,早早拿下了,但是结果是真的慢,一直在泡池子。(学历很有用,但没有项目经历管用,能做事比学历管用。
2024-03-30 16:36:51
570
原创 动态规划+二分查找
题目描述:给定一个区间数组,[[1,2,3],[3,4,2],[2,4,4]],每个区间有价值,求在获取k个区间的条件下面,求获得的最大的价值,关键是dp的定义和二分查找的写法(小于tar额最右下标)
2023-08-05 21:50:19
360
原创 理解Java线程状态并实现两个线程交替打印奇偶数
具体状态如下图所示,被阻塞的线程是放到同步队列中,执行wait方法的线程会进入到等待队列中,如果么有被notify唤醒,则会一直处于等待队列中。
2023-04-16 18:51:37
495
原创 大厂实习-字节跳动实习&滴滴实习日记
到了五六月开始陆续拿到一些offer了。主要有佛山一家五百强制造厂(主要做内部使用的系统,月薪8500,一周一休),爱奇艺(大数据部门,一天250,一天有15的餐补),滴滴(支付中台,一天300,每天包30的晚餐,九点后打车报销),新华三(北京,月薪8500,貌似比较轻松),到了五六月份,简历已经改过好几次,选择用简单明了的类型模板,八股也背的挺熟悉的,还有题目也刷了不少。大家来字节的话,也可以找我内推,可以随时咨询内推进度和岗位选择等,交个朋友,还可以一起组队刷题,保持手感,一起冲秋招!
2023-04-02 17:55:26
1752
2
原创 简简单单实现访问者模式
基本实现:访问者包含访问方法,参数为被访问的对象,目标对象应该包含接收方法,接收访问对象。访问者模式实现数据和操作分离,通过访问者对目标对象进行修改。
2023-04-02 16:25:48
159
原创 简简单单实现责任链模式
责任链模式,类似于Servlet中对request进行一步一步的处理,相当于一整条链路上面,每一个节点都会对其进行处理,处理完之后在进行下一个节点的处理。
2023-03-29 20:44:47
138
原创 jianzhiOffer第二版难重点记录
思路:传统思路会直接按位进行计算,优化思路的话,可以考虑用递归的思路,a于b之和可以分为无进位之和和有进位之和,无进位是a^b,有进位的和是(a&b)
2023-02-24 22:41:16
552
原创 剑指Offer专项突击版题解十一
思路:面对一堆数字喝一个目标值的时候,有以下几种情况,数字中是否包含重复数字,数字中的数是否可以被重复选择。不能重复选择的类型,那就按照0-1背包的写法,写成二维数组dp[i][j]表示前0-i的下标能否组成目标值j,nums放在外层。双向bfs,双向bfs的核心每次都会选择集合小的那头进行遍历,能很大的减少遍历数。思路:这是典型的课重复选择的问题,硬币数可以重复选择,可重复选的可以用一维。,如果写一维的话,需要注意在两层写法的时候不一样。这里典型的是可以重复选的类型,nums放在里面。
2023-02-19 20:34:44
186
原创 剑指Offer专项突击版题解十
dfs+回忆录, dfs func( i , j int)表示从i,j出发走到末尾匹配有多少种可能。思路:从暴力的角度去遍历,可以从两层循环遍历,通过map去判断第三个位置的数是否存在。思路:抽象dp,注意喝95题的区别,都是dp问题。思路:抽象dp,二维dp。
2023-02-19 18:06:44
124
原创 剑指Offer专项突击版题解九
思路:先排序然后dfs,在涉及到重复元素的时候,需要判断该位置的是否会被重复选择相同的值,这里和82题有点不一样,需要从逆向思维去考虑重复,如果该点没被选择,且上一个相同值的点就不能被选择,在选择的时候保证相对顺序。思路:可以采用dfs。思路:先排序+dfs。
2023-02-19 18:04:27
179
原创 每日go语言面试题六
select是通过监听文件描述符,具体流程是,将监听的文件描述符从用户区拷贝到内核区,通过内核去遍历文件哪些文件描述符已经就绪,然后将就绪的拷贝到用户区,在进行遍历,将满足条件的文件描述符分别进行读或者写,select监听的文件描述符是有上限的,上限为1024个,select基本和poll相似。线程池存在是为加快响应处理业务,减少了线程创建的等待时间,线程池主要是对工作的线程进行统一管理,从内存、调度和GC的角度去考虑,线程池在业务上应用很广,比如MySQL连接池,TomCat的连接池等。
2023-02-19 00:48:59
453
原创 每日go语言面试题五
读的种类,分为当前读和快照读,rr一般是快照读,rc为当前读。涉及到对数据的更新,会将修改的内容先写入redo log buffer,然后在对缓冲池中的数据也和索引页进行修改,redo log buffer会随着master线程每秒写入磁盘,redolog还有一个事务提交相关的参数设置,当为0的时候不做处理,等master线程刷新,为1的时候,每次提交的时候都会进行刷新,当为2的时候,将redo log buffer中的数据write写入page buffer中,等待操作系统写入磁盘。
2023-02-19 00:45:45
411
原创 剑指Offer专项突击版题解八
思路:归并思路好,如果采用普通的解法去做,进行循环遍历也能得出结果,但是时间复杂度比较高。思想:借助map存储排序的权制,在通过内置函数sort.Sllice进行排序。水塘抽样算法适合于样本不确定,乃至于是变化的,每个样本的概率是一样的。彩票调度算法是一种类似于将概率体现在数轴上面,适用范围是样本已知。思考:说到平均的生成随机数,想到了水塘抽样法和彩票调度法。思路:暴力思路,将节点放到数组内然后进行排序。思想:二分查找思想,因为目标答案明确。思想:按照区间排序之后再进行合并。进阶:归并排序的思想。
2023-02-19 00:39:14
361
原创 剑指Offer专项突击版题解七
思路:用heap实现根堆,然后根据出堆实现优先队列,记住用heap实现根堆五个重要的方法,三个值接受方法Len、Swap、Less和两个指针接受方法,Push、和Pop。思路:异或一次遍历,或者一次两步一次遍历中进行判断。思路:可以考虑用map进行存储key。思路二:可以建立前缀树,根据字母建立。前缀和的应用或者用map匹配也行。暴力思想-字符串后缀匹配。思路:简单的二分查找。思想:前缀和的应用,
2023-02-19 00:30:57
155
原创 剑指Offer专项突击版题解六
思路:这里考察的是后序遍历,对后序遍历每一个节点来说,当前点可以视作为终点,向上透传的时候要注意分几类情况,左右孩子最多只能选一个,或者自己也不选。思路:中序遍历的应用,方法一:可以将中序遍历加入到slice中遍历处理,方法二,直接在遍历的过程中进行修改。思路:两种做法,一种是根据中序遍历,记录pre的指向,第二种是根据大小关系直接进行遍历即可。思路:可以考虑一般普通解法,先用map,在用slice.sort,方法二:考虑用优先队列。思路:这是一个变形的后续遍历,只需要借助一个全局的临时变量即可。
2023-02-16 00:21:53
199
原创 剑指Offer专项突击版题解五
思路:因为树是完全二叉树,所以可以根据数组的下标获取父节点,或者也可以从层次遍历的角度出发,第一个左右孩子为空的时候就是插入的节点的位置。思路:一般想的是将二叉树进行序列为字符串格式并通过逗号进行分割,反序列化的时候将字符串转换成列表,根据根左右的形式转换成树的结构。方法二:某一段的值之和等于target,和数组的子数组之和等于target相似,因为可以采用前缀和的思想去处理这个问题。思路:需要从后序遍历的思想去处理这种结构,先处理左右孩子节点,在处理根节点。思路:用slice模拟滑动窗口就行。
2023-02-14 22:21:43
121
原创 剑指Offer专项突击版题解四
思路二:单调栈,栈里面存索引,单调递增的栈,1.当栈顶元素大于当前需要入栈的元素,栈顶作为height进行出栈,width为当前索引减去新的栈顶的index+1,因为老的栈顶和新的栈顶索引+1,在这个区间高度都会大于等于老的栈顶高度。思想:遍历模拟,用一个标识数组用于标记该数组是否被消灭,遍历找出所有向左的星球,判断右边是否有存在的星球,进行分类讨论,如果有存在有效的向左运行的星球直接跳出,如果有有效的向右的星球,进行分类讨论,如果大于向右的继续向左,如果小于则标记停止,如果等于也是标记停止。
2023-02-14 19:43:44
335
原创 每日go语言面试题四
Mutex分为正常模式和饥饿模式,正常模式是为了减少协程之间切换的开销,饥饿模式是为了防止协程太长时间没有获得锁。正常模式是当新进来的协程在抢夺锁的时候,会进行自旋进行判断,当锁占有者释放锁的时候,直接讲锁的占用交给自旋者,省去了唤醒和切换的开销。当等待队列的协程等待时间超过一个最大值的时候,mutex切换成饥饿模式,新进入的协程就不会自旋,然后是通过先进先出的方式急性获取锁,当队列里面为空或者队列里面获取锁等待的时间小于某一个值的时候,饥饿模式又会切换成正常模式。
2023-02-13 21:02:21
419
原创 剑指Offer专项突击版题解三
思路:之前通过了,现在写通不过,考虑的情况较多,又一个朴素的写法,先找出最小的节点,然后找到插入的位置。思路:map+slice就行,在slice删除的时候,可以考虑将当前位置和最后一个位置进行交换后在删除,思考:我不采用slice,根据map的随机访问,但是用例无法通过。思路:map、判圈法(先一步两步、找到哟圈之后在一步一步就会找到入口)思路:dfs存入nums[]数组中,在循环从新赋值一下指针。思路:采用先遍历k个位置,在用双指针同时遍历。思路:总会相遇的,空指针也算。思路:反转链表的应用。
2023-02-12 12:01:07
349
原创 剑指Offer专项突击版题解二
思路:采用滑动窗口的思想,给定a、b串,如何判断a的子串包含与b串呢,用map或者用数组[52]int{},这里有一个优化点,思想:判断一个字符串中是否有另一个字符串的变种,因为规定了只有小写字符,go语言中直接用[26]int判断两个字符串是否相等。思想:滑动窗口,用一个map[byte]int记录该字符串出现的下标,要值得注意的是,如果该字符存在的话,并且取出的。思路:字符串中字母和数字有效,并忽略字母的大小写,判断字符串是否是回文,双指针法。就是只有存在b中的字符才会对a的字符进行记录判断。
2023-02-11 21:30:57
1397
原创 每日go语言面试题三
go语言调度模型是gmp,g表示协程、m表示内核线程、p表示调度器,一般等于内核数,p中有一个本地的g队列,还有一个全局的g队列,m的数量一般大于p的数量,且gmp模型中存在m协程池用来减少m的创建和销毁,m必须和p结合后,才可以进行处理g,先处理p中的本地队列中的g,处理完之后,才会去全局队列中获取g,全局队列中为空的时候,会去其他p中窃取g来执行,每个g执行时间一般不超过10ms,这样能保证其他的g不会因为等太长的时间而出现饿死。索引的底层是B+树,为了就是加快检索的效率。
2023-02-11 14:35:00
379
原创 剑指Offer专项突击版题解一
原版本是找出出现一次的数字,其余都是出现两次,这个只需要全部异或就能得出答案,但是出现三次的要进行过滤的话,需要从二进制的角度去考虑,某一位,数组中累积和事3的倍数的话,这一位置肯定是出现三次的,否则是一位中的。暴力做法:在单词数组中,找出两个互补包含相同字符的串的乘积的最大值,思路是采用暴力双层遍历,先对数组按照字符串的长度进行降序排序,关键是如何快速判断两个字符串包含相同的字符,超时做法是:用一个map记录a,然后在判断b,取巧的方式是采用strings.indexByte内置的api。
2023-02-11 12:26:12
501
原创 每日go语言面试题二
支付失败,可以进行重试的机制,重试一定的次数,并且为了防止重复支付,做幂等处理,幂等处理可以用全局唯一的key做表示,比较有名的是雪花算法,雪花算法利用到集群、机器、随机数等关键信息防止重复。
2023-02-09 23:56:30
303
原创 MySQL的rc和rr隔离级别
为什么MySQL的默认隔级别是rr,这是历史原因,在MySQL5.1之前,binlog日志只有statment的格式,在主从复制的时候,由于事务commit的先后不一样,生成的binlog日志在从节点执行可以回造成主从不一致,所以MySQL默认隔离级别用rr,rr有间隙锁和临键锁,能保证主从复制的一致性。2,死锁的几率更小。3,rc还支持半一致性读,当update进行修改数据的时候,对于不满足更新条件的记录,可以提前释放锁,提升并发度。两者的区别:rr的隔离级别更高,相对安全一点,rc的性能更高,并发快。
2023-02-09 23:17:00
1610
原创 每日go语言面试题一
string的底层有int、embstr还有raw,根据val的类型、大小从而选择不同的数据结构。go语言的slice的结构有点类似于redis中的sds,slice的结构体存储着len大小、容量大小和底层的数组的指针,相比于go中的数组,slice的大小范围是可变的,slice在进行append操作的时候,当底层的数组的容量不够的时候需要进行扩容,扩容的规则是,当扩容的容量小于256的时候,一般是两倍进行扩容,大于256的时候,一般1.25倍进行扩容,直至满足要求。两种方法,贪心+二分查找、动态规划。
2023-02-09 23:15:20
349
原创 labuladong算法小抄-二分搜索-leetcode34、leetcode35、leetcode354、leetcode392、leetcode704、leetcode793、875、1011
labuladong算法小抄-二分搜索-leetcode34、leetcode35、leetcode354、leetcode392、leetcode704、leetcode793、875、1011
2022-08-16 23:45:42
240
原创 labuladong算法小抄-数据结构设计-leetcode146、leetcode341、leetcode380、leetcode460
labuladong算法小抄-数据结构设计-leetcode146、leetcode341、leetcode380、leetcode460
2022-08-05 22:43:05
303
基于SpringBoot的学生作业管理系统的配置
2022-06-03
基于SpringBoot+Vue的个人博客开发
2022-05-14
计算机毕业设计-基于神经网络APP-整合Vue+SpringBoot+TensorFlow框架-诗联AI
2022-05-11
计算机毕业设计-基于Java的GUI实现贪吃蛇小游戏
2022-05-10
基于SpringBoot的学生作业管理系统
2022-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人