开玩笑我超勇的啦
开玩笑我超勇的啦
全部文章
分类
Golang(3)
Java基础(7)
查漏补缺(1)
踩坑实录(1)
题解(6)
归档
标签
去牛客网
登录
/
注册
在杰难逃
我房间里有好康的~
全部文章
(共18篇)
Java数据结构(二)- ArrayList和LinkedList
ArrayList和LinkedList都实现了List接口,核心区别在于ArrayList是动态数组的数据结构,LinkedList是链表的数据结构。数组和链表的本质区别在于,数组在逻辑内存上的存储是连续的,而链表是非连续的,每一个节点通过指针指向下一个节点,数组和链表的所有性能上的不同都是由这一...
2020-05-30
0
927
面试查漏补缺 - HTTP REFERER
斗鱼二面的时候被问到了这样一个问题:你如何统计访问公司页面的用户都来自于哪些网站(比如baidu.com)? 当时答了个通过traceroute查看路由路径,下来查了下发现类似的统计其实是通过HTTP请求头的Referer字段来实现的,该字段会告诉服务器该请求是从哪个页面的链接过来的。
2020-05-30
1
589
Java数据结构(一)- HashMap的实现原理
Java中HashMap的基本结构是数组+链表,数组中的每个地址位置称作“桶”,新添加的元素通过rehash判断存放在哪个桶里,如果桶中已存在元素则形成链表,将新元素插入链表中,JDK1.8之前采用头插法,之后改为尾插法。在JDK1.8之后,当链表长度达到8时则会重构成红黑树。 Q: 可以将Has...
2020-05-27
0
759
LC46 - 全排列, 以及类似的dfs+回溯问题分析
好几次笔试面试碰到全排列问题了,这回来把它彻底吃透。 [1, 2, 3]这个序列我们要找到他的所有排列方式,那么先用树的形式把它表示出来:这就是上述问题的决策树了,从根结点到每一个叶子结点就是一种排列方式,我们要做的就是把这颗决策树用代码表示出来。 那么这里用到的方法就是dfs+回溯法,有一个通用的...
2020-05-16
0
778
LC31 - 下一个排列
这题直接举个例子更直观{1, 5, 8, 4, 7, 6, 5, 3, 1} 这样一个序列,我们想找比他大的下一个排序,那么首先要从后往前找第一个非升序的数字,也就是a[i] < a[i+1]的第一个(如果整个数组都是降序排列,说明它已经是最大的排列了,直接反转数组得到第一个排列),于是我们找...
2020-05-13
0
588
LC279 - 完全平方数
https://leetcode-cn.com/problems/perfect-squares/submissions/ 这是一道和硬币问题类似的拿/不拿/拿多少的问题,可以用动态规划解决,首先维护一个大小为n+1的数组a,a[i] = i (因为最坏情况是a[i] = i个1*1),然后求他的递...
2020-05-13
0
577
LC322 - 硬币兑换
这道题类似背包问题,取或不取,也可取多个,可以用自底向上的动态规划解决,首先可以将递归式列出。 F(0) = 0;F(n) = Min{F(n - a[0]), F(n - a[1]), F(n - a[2]), ... F(n - a[a.length - 1])} + 1;其中a为硬币数组。 代...
2020-04-29
0
667
LC56 - 合并区间
两个区间合并一共有六种可能首先要把它们都转换成第一行的三种情况,那么就需要保证第一个区间的开始小于第二个区间的开始,于是我们需要把所有区间按开始的大小排序,之后再按这三种情况讨论。以下是代码 class Solution { public int[][] merge(int[][] inte...
2020-04-28
0
631
首页
上一页
1
2
下一页
末页