算法
setAll功能的哈希表:
设置两个变量,一个setAllValue,保存setAll操作时的值,setAllTime记录操作时的时间。
更新键值对的时候也要记录更新的时间。
然后取值的时候,就可以把更新时间与setAllTime进行比较,就知道该取的值是本身还是setAllValue
实现LRU:
用一个哈希表和一个双向循环链表。
如果是刚刚用过的数,就把它移动到链表的末尾。链表头部就是最近最久未被使用的数。当加入新的结点,如果容量不够,就把最近最久未被使用的数删除,然后把结点放入末尾,如果容量够的话就直接放入链表末尾。
如果只是更新结点,则只需移动到链表末尾即可。
如果只是更新结点,就把他移动到链表末尾。
插入、删除和获取随机元素O(1)时间的结构:
一个动态数组和一个哈希表
插入时,在数组和哈希表中同时更新
获取随机元素直接从哈希表中获取
删除时,删除数组中对应的数,记录下标,然后把最后一个数移动到这里,删除掉最后一个数,这样子数组就一直是连续的。同时哈希表也要删除,然后更新最后一个数的下标。
深度学习:
学了logistics回归,然后有些概念不太懂,去补了吴恩达机器学习的线性回归。
Java:
内部类
String类