5. Longest palindromic substring(最长回文子串):中心扩展算法
11. Container With Most Water(盛最多水的容器):双指针法
15. 3sum(找到数组中的三个数的下标使得其a+b+c=0):双指针法(先对数组排序,然后去除重复元素,和题11一样,在数组前后各设置一个指针,然后根据条件移动)
17. Letter Combinations of a Phone Number(电话号码字母组合):哈希表、递归调用
19. Remove Nth Node From End of List(删除链表中倒数第N个节点):双指针法(先让两个指针分别指向头结点,然后令第一个指针first前进N,再令两个指针同时前进直至first为null)
55. jump game(跳跃游戏):动态规划(自底向上)

class Solution {
    public boolean canJump(int[] nums) {
        int len = nums.length;
        if(len < 2)
            return true;
        int[] dp = new int[len];
        dp[len - 1] = 1;
        for(int i = len - 2; i >= 0; i--){
            int furthestIndex = Math.min(i + nums[i], len - 1); //跳过之后最远的坐标
            //如果nums[i]=0,则这个循环不会发生
            for(int j = i + 1; j <= furthestIndex; j++){    
                if(dp[j] == 1){
                    dp[i] = 1;
                    break;
                }
            }
        }
        return dp[0] == 1;
    }
}

94. Binary Tree Inorder Traversal(二叉树的非递归中序遍历):(a.创建一个栈,根节点入栈;b.栈非空,则栈顶节点的非空左节点相继进栈;c.弹出栈顶节点并将该弹出的节点的非空右节点入栈;d.重复bc步骤)

 import java.util.LinkedList;
 import java.util.ArrayList;
 class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        LinkedList<TreeNode> stack = new LinkedList<>();
        List<Integer> list = new ArrayList<>();
        if(root == null)
            return list;
        stack.push(root);
        while(!stack.isEmpty())
        {
            while(stack.peek() != null)
                stack.push(stack.peek().left);
            stack.pop();    //移除栈顶的空节点
            if(!stack.isEmpty())
            {
                TreeNode node = stack.pop();
                list.add(node.val);
                stack.push(node.right);
            }
        }
        return list;
    }
}

105. Construct Binary Tree from Preorder and Inorder Traversal(从前序与中序遍历序列构造二叉树):递归

return solve(preorder, 0, preorder.length - 1, inorder, 0, inorder.length - 1);
public TreeNode slove(int[] preorder, int begin1, int end1, int[] inorder, int begin2, int end2)
{}

106. (非hot100)Construct Binary Tree from Inorder and Postorder Traversal(从二叉树的中序和后序遍历序列构造一棵二叉树):递归

return solve(inorder, 0, inorder.length - 1, postorder, 0, postorder.length - 1);
public TreeNode slove(int[] inorder, int begin1, int end1, int[] postorder, begin2, int end2)
{}

140.Word-Break-ii(单词拆分):DFS(只是实现了一个DFS方法,实际上用的是递归?)