Ryan
Ryan
看了下 LinkedHashMap 实现,发现还可以这样写,挺有意思的: ```java class LRUCache { int cap; LRULinkedHashMap cache; public LRUCache(int capacity) { this.cap = capacity; // 最后一个参数 true 表示按访问排序 this.cache = new LRULinkedHashMap(capacity, 0.75F, true); } public...
这个分区容易理解点,有点双指针技巧含义,选最后一个元素作为分区点,指针 i 表示比分区值小的元素应该放的位置,指针 j 只用来遍历。当 j 遍历到比分区值小的元素时,放到指针 i 的位置(通过交换实现)。当 j 遍历完时,[lo, i - 1] 都是比分区值小的元素,[i, hi - 1] 都是比分区值大的元素,最后交换一下分区值和 i 所指向的元素便实现了 pivot 左边都是比它小的元素,右边都是比它大的元素。 ```java private static int partition(int[] arr, int...