算法
码着码着
这个作者很懒,什么都没留下…
展开
-
反转n到m的链表节点
public ListNode reverseList2(ListNode head, int left, int right) { ListNode node = new ListNode(0); //为原链表定义一个头节点,方便操作 node.next = head; //定位到left节点前一个位置 ListNode pre = node; for (int i = 0; i < left -...原创 2021-09-17 21:28:46 · 173 阅读 · 0 评论 -
三数之和的简单解法(容易理解)
主要是对双指针的运用。1.把数组进行排序,这样两个相同的数就会排在一起,方便去重。2.外层循环确定第一个数,里面两个指针确定另外两个数。public class ThreeSumDemo { public static List<List<Integer>> threeSum(int[] nums){ List<List<Integer>> lists = new ArrayList<>(); .原创 2021-09-16 19:38:10 · 8130 阅读 · 0 评论 -
LRU算法(最近最少使用)的简单实现
public class LRUCacheDemo { int cap; //利用有序的map来存贮元素 Map<Integer, Integer> map = new LinkedHashMap<>(); //初始化容量上限 public LRUCacheDemo(int capacity) { this.cap = capacity; } public int get(int key) { .原创 2021-09-15 09:26:05 · 170 阅读 · 0 评论 -
从上到下打印二叉树
public class PrintFromTopToBottomDemo { public ArrayList<Integer> printFromTopToBottom(TreeNode root){ //创建返回的集合 ArrayList<Integer> arrayList = new ArrayList<>(); //创建要借助的队列 LinkedList<TreeNode>.原创 2021-09-14 22:20:17 · 65 阅读 · 0 评论