- 博客(4)
- 收藏
- 关注
原创 final,static,this,super 关键字
final,static,this,super 关键字总结final 关键字final关键字,意思是最终的、不可修改的,最见不得变化 ,用来修饰类、方法和变量,具有以下特点:final修饰的类不能被继承,final类中的所有成员方法都会被隐式的指定为final方法;final修饰的方法不能被重写;final修饰的变量是常量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能让其指向另一个对象。说明:使用final方法的原因
2021-07-11 21:46:40 82
原创 HashMap的底层实现原理
HashMap 的底层实现1.JDK1.8 之前JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列。HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过 (n - 1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。所谓扰动函数指的就是 Hash
2021-07-11 21:40:11 93
原创 算法题:数组中重复的数字
1. 03-数组中重复的数字 ????题目:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 思路1:哈希表 / Set利用数据结构特点,容易想到使用哈希表(Set)记录数组的各个数字,当查找到重复数字则直接返回。算法流程:初始化: 新建 HashSet ,记为 dic;遍历数
2021-07-11 21:31:00 163
原创 梯度提升机(Gradient Boosting Machine)之 LightGBM
随着大数据时代的到来,GBDT正面临着新的挑战,特别是在精度和效率之间的权衡方面。传统的GBDT实现需要对每个特征扫描所有数据实例,以估计所有可能的分割点的信息增益。因此,它们的计算复杂度将与特征数和实例数成正比。这使得这些实现在处理大数据时非常耗时。所以微软亚洲研究院提出了 LightGBM ,其设计理念是:单个机器在不牺牲速度的情况下,尽可能使用上更多的数据多机并行的时候,通信的代价尽可能地低,并且在计算上可以做到线性加速。LightGBM 与 XGBoost 相似,也是一种梯度提升机,但是与
2021-07-11 21:26:58 748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人