笔者自述:
一直有一个声音也一直能听到身边的大佬经常说,要把算法学习搞好,一定要重视平时的算法学习,虽然每天也在学算法,但是感觉自己一直在假装努力表面功夫骗了自己,没有规划好自己的算法学习和总结,因为后半年也该找实习了,所以每日的算法题要进行恶补,勤能补拙,因此有了这一个算法日记系列;
必读: 大佬你好,感谢您的阅读,这篇文章是我的算法笔记,方便我每日回顾;
为了不耽误您的时间,我把本篇日记的考点方向和算法知识总结列出来,如果对您有需要就继续向下进行阅读
也希望对您有帮助,和您一起通关算法!致谢
算法语言:java
题目来源:力扣–书本–初级算法,可以在力扣中搜索相关题名找到更多解法和大神方法
本文知识点:
- Hashset和Hashmap讲解
HashSet讲解: 不允许有重复元素,内部无序,由散列表实现,支持快速的查询,插入和删除。
适用场景:需要去除重复元素,不需要有序遍历元素,对元素的增删改查时间复杂度要求是O(1)情况
方法: set.add() set.delete() set.contains() set.size()
缺点:因为无序,所有空间利用率较低,最坏情况,所有元素映射到同一个散列桶内,时间复杂度退化为O(n)
HashMap讲解:键值对形式,允许空建和空值,根据键值快速查找,最优情况增删改查为O(1)
适用场景:根据键值快速增删改查,需要快速遍历映射表中的所有元素,时间复杂度最优为O(1)
方法:map.put(key,value) map.remove(key) map.containsKey(key) map.size() 遍历