【Java实现 LeetCode 652 寻找重复的子树(两个map的DFS)】教程文章相关的互联网学习教程文章

【LeetCode】150. Evaluate Reverse Polish Notation 逆波兰表达式求值(Medium)(JAVA)【代码】【图】

【LeetCode】150. Evaluate Reverse Polish Notation 逆波兰表达式求值(Medium)(JAVA) 题目地址: https://leetcode.com/problems/evaluate-reverse-polish-notation/ 题目描述: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Note: Division between two integers should truncate toward zero. The ...

【LeetCode】452. Minimum Number of Arrows to Burst Balloons 用最少数量的箭引爆气球(Medium)(JAVA)【代码】【图】

【LeetCode】452. Minimum Number of Arrows to Burst Balloons 用最少数量的箭引爆气球(Medium)(JAVA) 题目地址: https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/ 题目描述: There are some spherical balloons spread in two-dimensional space. For each balloon, provided input is the start and end coordinates of the horizontal diameter. Since it’s horizontal, y-coordinates don’...

【刷题1】LeetCode 416. 分割等和子集 java题解【代码】【图】

题目 https://leetcode-cn.com/problems/partition-equal-subset-sum/ 方法一:空间优化的01背包动态规划 分析 在「填表格」的时候,当前行总是参考了它上面一行 「头顶上」 那个位置和「左上角」某个位置的值。因此,我们可以只开一个一维数组,从后向前依次填表即可。 代码 class Solution {public boolean canPartition(int[] nums) {int sum=0;for(int n:nums){sum+=n;}//如果和为奇数,不可分,返回falseif(sum%2==1)return ...

leetcode刷题笔记-104. 二叉树的最大深度(java实现)

题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree 解题思路 如果我们知道了左子树和右子树的最大深度 l 和 r,那么该二叉树的最大深...

Leetcode.438 Find All Anagrams in a String(Java)【代码】

Leetcode.438 Find All Anagrams in a String Given a string s and a non-empty string p, find all the start indices of ps anagrams in s. Strings consists of lowercase English letters only and the length of both strings s and p will not be larger than 20,100. The order of output does not matter. Example 1: Input: s: "cbaebabacd" p: "abc"Output: [0, 6]Explanation: The substring with start index = 0 is ...

leetcode刷题笔记-2. 两数相加(java实现)【图】

题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems...

leetcode刷题笔记-3. 无重复字符的最长子串(java实现)【图】

题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2: 输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3: 输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 ...

LeetCode 102. 二叉树的层序遍历 Java【代码】【图】

这个层序遍历要求返回每层的节点,正常的BFS从队列中弹出一个节点后就判断其有没有左子树和右子树,所以直接用BFS实现的话无法分层输出。 需要记录每层的节点数目,增加一个for循环就可以了。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public List<List<Integer>> levelOrder(TreeNode...

LeetCode刷题时引发的思考:Java中ArrayList存放的是值还是引用?【代码】【图】

好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航前言 今天我在刷LeetCode的时候遇到了一个问题,就是ArrayList添加不进去数据,其实不是没有添加进去,而是添加进去的数据被改变了,为什么会改变了呢?其实涉及到ArrayList存放的是值还是引用的问题,网上有很多回答是:如果是基本数据类型则存放的是值,如果是对象存放的就是引用。那么到底是什么呢,...

Java实现 LeetCode第198场周赛 (题号5464,5465,5466,5467)【代码】【图】

这次的题感觉比往常难度大多了 5464. 换酒问题 小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。 如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。 请你计算 最多 能喝到多少瓶酒。 示例 1: 输入:numBottles = 9, numExchange = 3 输出:13 解释:你可以用 3 个空酒瓶兑换 1 瓶酒。 所以最多能喝到 9 + 3 + 1 = 13 瓶酒。示例 2: 输入:numBottles = 15, numExchange = 4 输出...

LeetCode 378. 有序矩阵中第K小的元素 Java【代码】【图】

容易想到的暴力解法:把数据都取出来排序,需要n2大小的数组存储 既然数组是有序的,把每一行看成一个有序数组,对这些数组进行归并排序,归并到第k个数为止。 看了题解,了解到优先级队列PriorityQueue可以用于实现归并排序,PriorityQueue底层是一个堆的结构。具体可参考这篇文章 刷算法不知道PriorityQueue?看了这篇文章才知道他有多实用 还有一种二分查找的算法,感觉不太容易想出。 class Solution {public int kthSmallest(i...

JAVA程序设计:等式方程的可满足性(LeetCode:990)【代码】

给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。 只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。 示例 1: 输入:["a==b","b!=a"] 输出:false 解释:如果我们指定,a = 1 且 b = 1,那么可以满足第一个方程,但无法满足第二个...

Leetcode做题日记:74. 搜索二维矩阵(java)【代码】【图】

题目:看到矩阵的时候,也许你会虚,我线性代数没学好可能写不出来,别怕其实就是二维数组的遍历而已,认识到这一点,你就成功了一半,Just kidding,代码实现不了有思路跟没思路一样, 最优算法查找方式见图中红色的箭头;java基础知识: 获取二维数组的长度; 获取行数: int rowLength = array.length; 获取列数: int colLength = array[0].length; 上代码: class Solution {public boolean searchMatrix(int[][] matrix, int...

Java实现 LeetCode 816 模糊坐标(暴力)【代码】

816. 模糊坐标 我们有一些二维坐标,如 “(1, 3)” 或 “(2, 0.5)”,然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。 原始的坐标表示法不会存在多余的零,所以不会出现类似于"00", “0.0”, “0.00”, “1.0”, “001”, "00.01"或一些其他更小的数来表示坐标。此外,一个小数点前至少存在一个数,所以也不会出现“.1”形式的数字。 最后返回的列表可以是任意顺序的。而且注意返回...

Java实现 LeetCode 837 新21点(DP)【代码】

837. 新21点 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例 1: 输入:N = 10, K = 1, W = 10 输出:1.00000 说明:爱丽丝得到一...