86. 分隔链表
咱也是成功发现leetcode的bug了哈哈哈

题目:


题解:
java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode partition(ListNode head, int x) {
//小于x的链表
ListNode xy = new ListNode();
//大于等于x的链表
ListNode dy = new ListNode();
//当前辅助小于x的链表
ListNode curXy = xy;
//当前辅助大于等于的链表
ListNode curDy = dy;
//当前辅助遍历head的结点
ListNode cur = head;
while(cur != null) {
if(cur.val < x) {
curXy.next = cur;
curXy = curXy.next;
}
else {
curDy.next = cur;
curDy = curDy.next;
}
cur = cur.next;
}
curDy.next = null;
curXy.next = dy.next;
return xy.next;
}
}
146. LRU缓存
真没想到java官方还有这样的方法,牛皮

题目:


题解:
java
import java.util.LinkedHashMap;
import java.util.Map;
class LRUCache extends LinkedHashMap<Integer, Integer> {
private final int capacity;
public LRUCache(int capacity) {
// true 表示按访问顺序排序(LRU 关键!)
super(capacity, 0.75f, true);
this.capacity = capacity;
}
public int get(int key) {
return super.getOrDefault(key, -1);
}
public void put(int key, int value) {
super.put(key, value);
}
// 当 size() > capacity 时,自动移除最老的 entry
@Override
protected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {
return size() > capacity;
}
}