86. 分隔链表
86. 分隔链表
咱也是成功发现leetcode的bug了哈哈哈
题目:
题解:
/** * 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 缓存
146. LRU缓存
真没想到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; } }