动态规划

动态规划 0.1背包 理论基础 二维表 行代表选取0-n 多少物品 列代表 最大容量 最后需要的是最后一个格子


贪心算法

1、分发饼干 https://leetcode.cn/problems/assign-cookies/description/ class Solution { public int findContentChildren(int[] g, int[] s) { if(s.l


回溯问题

回溯 1、组合 https://leetcode.cn/problems/combinations/description/ 回溯的返回值一般都是void,还有 注意for循环的开始值,不能每次都从集合的第一数值开始。 第二需要注意的是: 不能写成 result.add(list) 因为在 Java


二叉树

二叉树 涉及到二叉树的构造,无论普通二叉树还是二叉搜索树一定前序,都是先构造中节点。 求普通二叉树的属性,一般是后序,一般要通过递归函数的返回值做计算。 求二叉搜索树的属性,一定是中序了,要不白瞎了有序性了 1、二叉树层序遍历 https://leetcode.cn/problems/binary-


栈与队列

栈: java.util.Stack:使用动态数组实现。 java.util.Deque:可以使用链表或动态数组实现。 队列: java.util.LinkedList:使用链表实现。 java.util.ArrayDeque:使用动态数组实现。 java.util.PriorityQueue:使用


字符串

1、反转字符1 题目: https://leetcode.cn/problems/reverse-string/description/ class Solution { public void reverseString(char[] s) { int n=s.length


哈希表

1、快乐数 题目链接:https://leetcode.cn/problems/happy-number/description/ 我们可以看到如果有循环的话,直接就输出false就行,那么当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法了。 方法一:哈希表 package com


链表

1、环形链表 题目:https://leetcode.cn/problems/linked-list-cycle-ii/description/ ①使用哈希表 public class Solution { public ListNode detectCycle(ListNode head)