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

Java实现 LeetCode 794 有效的井字游戏 (暴力分析)【代码】

794. 有效的井字游戏 用字符串数组作为井字游戏的游戏板 board。当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true。 该游戏板是一个 3 x 3 数组,由字符 " ",“X” 和 “O” 组成。字符 " " 代表一个空位。 以下是井字游戏的规则: 玩家轮流将字符放入空位(" ")中。 第一个玩家总是放字符 “X”,且第二个玩家总是放字符 “O”。 “X” 和 “O” 只允许放置在空位中,不允许对已放有字符的位...

Java实现 LeetCode 793 阶乘函数后K个零 (分析)【代码】

793. 阶乘函数后K个零 f(x) 是 x! 末尾是0的数量。(回想一下 x! = 1 * 2 * 3 * … * x,且0! = 1) 例如, f(3) = 0 ,因为3! = 6的末尾没有0;而 f(11) = 2 ,因为11!= 39916800末端有2个0。给定 K,找出多少个非负整数x ,有 f(x) = K 的性质。 示例 1: 输入:K = 0 输出:5 解释: 0!, 1!, 2!, 3!, and 4! 均符合 K = 0 的条件。 示例 2: 输入:K = 5 输出:0 解释:没有匹配到这样的 x!,符合K = 5 的条件。 注意: K是范围在 [0, 1...

Java实现 LeetCode 786 第 K 个最小的素数分数(大小堆)【代码】

786. 第 K 个最小的素数分数 一个已排序好的表 A,其包含 1 和其他一些素数. 当列表中的每一个 p<q 时,我们可以构造一个分数 p/q 。 那么第 k 个最小的分数是多少呢? 以整数数组的形式返回你的答案, 这里 answer[0] = p 且 answer[1] = q. 示例: 输入: A = [1, 2, 3, 5], K = 3 输出: [2, 5] 解释: 已构造好的分数,排序后如下所示: 1/5, 1/3, 2/5, 1/2, 3/5, 2/3. 很明显第三个最小的分数是 2/5. 输入: A = [1, 7], K = 1 输出:...

Java实现 LeetCode 789 逃脱阻碍者(曼哈顿距离)【代码】

789. 逃脱阻碍者 你在进行一个简化版的吃豆人游戏。你从 (0, 0) 点开始出发,你的目的地是 (target[0], target[1]) 。地图上有一些阻碍者,第 i 个阻碍者从 (ghosts[i][0], ghosts[i][1]) 出发。 每一回合,你和阻碍者们可以同时向东,西,南,北四个方向移动,每次可以移动到距离原位置1个单位的新位置。 如果你可以在任何阻碍者抓住你之前到达目的地(阻碍者可以采取任意行动方式),则被视为逃脱成功。如果你和阻碍者同时到达了...

JAVA程序设计:救生艇(LeetCode:881)【代码】

第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 示例 1: 输入:people = [1,2], limit = 3 输出:1 解释:1 艘船载 (1, 2) 示例 2: 输入:people = [3,2,2,1], limit = 3 输出:3 解释:3 艘船分别载 (1, 2), (2) 和 (3) 示例 3: 输入:people = [3,5,3,4], limit = 5 输出:4...

LeetCode 692. Top K Frequent Words 前K个高频单词 (Java)【代码】

题目: Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted by frequency from highest to lowest. If two words have the same frequency, then the word with the lower alphabetical order comes first. Example 1: Input: ["i", "love", "leetcode", "i", "love", "coding"], k = 2 Output: ["i", "love"] Explanation: "i" and "love" are the two most frequent words.No...

LeetCode LCP 01. 猜数字 多种语言解法 C/C++/Python/Java【代码】

LeetCode LCP 01. 猜数字 多种语言解法 C/C++/Python/Java??大家好,我叫亓官劼(q guān ji ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!!博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客题目 难度 简单 小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个...

Java实现 LeetCode 743 网络延迟时间(Dijkstra经典例题)【代码】【图】

743. 网络延迟时间 有 N 个网络节点,标记为 1 到 N。 给定一个列表 times,表示信号经过有向边的传递时间。 times[i] = (u, v, w),其中 u 是源节点,v 是目标节点, w 是一个信号从源节点传递到目标节点的时间。 现在,我们从某个节点 K 发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回 -1。 示例:输入:times = [[2,1,1],[2,3,1],[3,4,1]], N = 4, K = 2 输出:2 注意: N 的范围在 [1, 100...

Java实现 LeetCode 670 最大交换(暴力)【代码】

670. 最大交换 给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 注意: 给定数字的范围是 [0, 108] class Solution {public int maximumSwap(int num) {if(num<10) return num;int[] nums = new int[9];int size=0;while(num !=0){nums[size++] = num%10;num = num/10;}for(int tmp = ...

Java实现 LeetCode 686 重复叠加字符串匹配【代码】

686. 重复叠加字符串匹配 给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。 举个例子,A = “abcd”,B = “cdabcdab”。 答案为 3, 因为 A 重复叠加三遍后为 “abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为"abcdabcd",B 并不是其子串。 注意: A 与 B 字符串的长度在1和10000区间范围内。 class Solution {public int repeatedStringMatch(String ...

Java实现 LeetCode 664 奇怪的打印机(DFS)【代码】

664. 奇怪的打印机 有台奇怪的打印机有以下两个特殊要求: 打印机每次只能打印同一个字符序列。 每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。 给定一个只包含小写英文字母的字符串,你的任务是计算这个打印机打印它需要的最少次数。 示例 1: 输入: “aaabbb” 输出: 2 解释: 首先打印 “aaa” 然后打印 “bbb”。 示例 2: 输入: “aba” 输出: 2 解释: 首先打印 “aaa” 然后在第二个位置打印 “b” 覆盖...

Java实现 LeetCode 653 两数之和 IV - 输入 BST(递归,找差值)【代码】

653. 两数之和 IV - 输入 BST 给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。 案例 1: 输入:5/ 3 6/ \ 2 4 7Target = 9 输出: True 案例 2: 输入:5/ 3 6/ \ 2 4 7Target = 28 输出: False /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = ...

Java实现 LeetCode 652 寻找重复的子树(两个map的DFS)【代码】

652. 寻找重复的子树 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1:1/ 2 3/ / 4 2 4/4下面是两个重复的子树:2/4 和4因此,你需要以列表的形式返回上述重复子树的根结点。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode righ...

leetcode_115——不同的子序列(Java实现)【代码】

题目链接: https://leetcode-cn.com/problems/distinct-subsequences/submissions/ 思路: 一道dp的题 状态转移方程为: if (s[j] == t[i])dp[i][j] = dp[i-1][j-1] = dp[i][j-1] //意思是:如果字符串中对应字符相同,则转移状态,此子字符串在之前的子串集合里出现的次数是上一个子串出现的次数加上该串之前出现的次数(不知道讲清楚没,我是理解的/思考) else dp[i][j] = dp[i][j-1] 如果不相等,则此单元内肯定是当前子串在...

【LeetCode】 1160. Find Words That Can Be Formed by Characters 拼写单词(Easy)(JAVA)【代码】

【LeetCode】 1160. Find Words That Can Be Formed by Characters 拼写单词(Easy)(JAVA) 题目地址: https://leetcode.com/problems/find-words-that-can-be-formed-by-characters/ 题目描述: You are given an array of strings words and a string chars. A string is good if it can be formed by characters from chars (each character can only be used once). Return the sum of lengths of all good strings in words...