5.leetcode hot 100 0502-17 收起 解题思路:前序遍历,然后将每个非空节点的左右子树交换(java要创建tmp变量交换),最后返回交换后的root;或者也可以创建一个新的二叉树节点然后赋值(比较麻烦) class Solution { public TreeNode invertTree(TreeNode root) { if (root == null)
【NO.77】LeetCode HOT 100—301. 删除无效的括号 文章目录 301. 删除无效的括号 解题 方法一:回溯 方法二:BFS(广度优先搜索) 301. 删除无效的括号 给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。 返回所有可能的结果。答案可以按 任意顺序 返回。 示例1: 输入:s...
LeetCode 热题 HOT 100 Java题解——15. 三数之和 LeetCode 热题 HOT 100 Java题解 15. 三数之和 排序,双指针 复杂度分析 15. 三数之和 题目: 给你一个包含 n n n 个整数的数组 nums,判断 nums 中是否存在三个元素 a , b , c a,b,c a,b,c ,使得 a + b + c = 0 a + b + c...
【LeetCode Hot 100】17. 电话号码的字母组合 题目描述 本题需要用回溯算法遍历穷举所有可能的解。回溯算法维护一个字符串序列,记录已经有的字母排列,用一个索引值记录该字符串序列下一个将要处理的位置。每次递归将索引值加一,回溯之后将字符串序列中上次加入的字符退出序列中,枚举下一个可能的值。总的来说是一个...
来自专栏 · LeeCode HOT 100 102. 二叉树的层序遍历 思路:使用队列。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode lef...
推荐题解:简明易懂的Java解答 class Solution { public int leastInterval(char[] tasks, int n) { int[] counts = new int[26]; //记录每个任务(字母)出现需要执行的次数 // 'A' 放在 counts[0], 'B'、'C'依次向后 for (char ch : tasks) { counts[ch - 'A']++; } Arrays.sort(counts)...
Java的API:LinkedHashMap class LRUCache extends LinkedHashMap<Integer, Integer>{private int capacity;public LRUCache(int capacity) {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) {sup...
你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 说明: 假设你总是可以到达数组的最后一个位置。 问题分析 此题用贪心算法,但不是最简单粗暴那种。从起始位置开始,到起始位置能跳到的范围内,遍历,并记录能跳到的最远位置pre。然后把pre赋值给cur,准备下一次的遍历。然后下......
【NO.2】LeetCode HOT 100—2. 两数相加 文章目录 2. 两数相加 解题 2. 两数相加 2. 两数相加 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。
LeetCode 热题 HOT 100 简单篇(已完结) 4.26 振作一点 代码注释部分包括本题的知识点、思路、以及解答过程中的部分测试用例。 【 1.两数之和】 梦开始的地方,超多方法,感兴趣的可以看官方题解和精选。 复制代码 1 2 3 4 5 6 7 8 9 10 11