- 博客(10)
- 问答 (1)
- 收藏
- 关注
原创 Java8 HashMap 扩容之后旧元素存放位置
Java8 HashMap 扩容之后旧元素存放位置根据源码可看出,java 在扩容的时候会新建一个新的 Node<K,V>[] 来存放扩容之后的值,并将旧有的Node数组置空;至于旧有值移动到新的节点的时候存放于哪个节点,Java 是根据(e.hash & oldCap) == 0 来判断的:① 等于0时,则将该节点放到新数组时的索引位置等于其在旧数组时的索引位置,记为低位区链表lo开头-low;② 不等于0时,则将该节点放到新数组时的索引位置等于其在旧数组时的索引位置再.
2021-03-24 10:23:42
4544
原创 Java for和forEach 效率对比
测试:原因:foreach使用的是迭代器结论:可以下标访问时,使用for,不能下标访问,需要指针访问时,使用for each。需要循环数组结构的数据时,建议使用普通for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。需要循环链表结构的数据时,一定不要使用普通for循环,这种做法很糟糕,数据量大的时候有可能会导致系统崩溃。...
2021-02-20 14:21:47
659
原创 LeeCode64: 最小路径和
给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。很惭愧,我一开始审题不认真就没发现只能向下或者向右的规定,不过感觉不规定这个更合理,以下是...
2019-03-13 16:26:38
537
转载 RabbitMQ 的四种Exchange 模式
RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储RabbitMQ提供了四种Exchange:fanout,direct,topic,headerheader模式在实际使用中较少。性能排序:fanout > direct >> topic。比例大约为11:10:6 一.Direct E...
2019-02-13 16:36:06
600
原创 LeeCode 773 滑动谜题
在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次移动定义为选择 0 与一个相邻的数字(上下左右)进行交换.最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。给出一个谜板的初始状态,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。示例:输入:board = [...
2019-01-24 09:38:38
461
原创 956 最高的广告牌
记两个算法:一个纯暴力解决,超越了0.0%的用户:public int tallestBillboard(int[] rods) { int total = 0; for (int i : rods) { total += i; } return tallestBillboardAss(rods, 0, ...
2019-01-08 16:35:53
299
原创 337. 打家劫舍 III
LeeCode 337题,题目:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额...
2018-12-29 15:31:27
190
2
转载 DOS命令大全
常见DOS命令总结常用的内部命令有MD,CD,RD,DIR,PATH,COPY,TYPE,编辑,REN,DEL,CLS,VER,日期,时间,及时。常用的外部命令有DELTREE,FORMAT,DISKCOPY,标签,VOL, SYS,XCOPY,FC,ATTRIB,MEM,树。切换到其他盘符d:1.MD--建立子目录功能:创建新的子目录录类型:内部命令ü 格式:MD [盘符号] [路径...
2018-08-21 11:45:40
309
原创 向上转型
向上转型重新学习Java时看到j向上转型;public class Test01{ public static void main(String[] args){ System.out.println("Hellow"); Bird b = new Bird(); Panda p = new Panda(); Lion l = new Lion(); Test01 t ...
2018-06-06 17:07:54
328
转载 C++内存管理(超长,例子很详细,排版很好)
[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还...
2018-03-10 22:19:09
227
空空如也
Leecode 编码NullPointException错误?
2018-11-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人