
算法
lp151397
打工人
展开
-
单词接龙(BFS广度优先搜索)
输入:beginWord = “hit”,endWord = “cog”,wordList = [“hot”,“dot”,“dog”,“lot”,“log”,“cog”]输出: 5解释: 一个最短转换序列是 “hit” -> “hot” -> “dot” -> “dog” -> “cog”,返回它的长度 5。public class Solution { public int ladderLength(String beginWord, String end原创 2020-11-06 11:24:56 · 305 阅读 · 0 评论 -
有多少小于当前数字的数字
给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/how-many-numbers-are-smaller-than-the-current-number著作权归领扣网络所有。商业转载请联原创 2020-10-26 20:15:00 · 194 阅读 · 0 评论 -
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。class Solution { public boolean backspaceCompare(String S, String T) { return check(S).equals(check(T)); } private String check(String str) { Stack<Character> stk原创 2020-10-19 21:14:32 · 551 阅读 · 0 评论 -
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/partition-equal-subset-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Solution { public boolean canPartition(int[] nums)原创 2020-10-11 23:16:21 · 2585 阅读 · 0 评论 -
填充每个节点的下一个右侧节点指针 II
输入:root = [1,2,3,4,5,null,7]输出:[1,#,2,3,#,4,5,7,#]解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。/*// Defi原创 2020-09-28 23:48:54 · 1140 阅读 · 1 评论 -
无重复字符的最长子串
输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。class Solution { public int lengthOfLongestSubstring(String s) { Queue<Character> queue = new LinkedList<>(); int flag=0; for(char c:s.toCharArray()原创 2020-09-27 23:55:39 · 407 阅读 · 0 评论 -
路径总和 II
示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [5,4,11,2], [5,8,4,5]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path原创 2020-09-26 23:45:09 · 85 阅读 · 0 评论 -
从中序与后序遍历序列构造二叉树
中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处原创 2020-09-25 23:54:20 · 222 阅读 · 0 评论 -
二叉搜索树中的众数
给定 BST [1,null,2,2], 1 \ 2 / 2返回[2]./** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { L原创 2020-09-24 23:47:06 · 83 阅读 · 0 评论 -
合并二叉树
输入: Tree 1 Tree 2 1 2 / \ / \ 3 2 1 3原创 2020-09-23 23:07:49 · 80 阅读 · 0 评论 -
把二叉搜索树转换为累加树
输入: 原始二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / \ 20 13/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNod原创 2020-09-22 23:56:22 · 170 阅读 · 0 评论 -
整数转罗马数字
输入: 1994输出: “MCMXCIV”解释: M = 1000, CM = 900, XC = 90, IV = 4.class Solution { public String intToRoman(int num) { StringBuilder ans = new StringBuilder(); String[] roman = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V",原创 2020-09-21 23:27:38 · 144 阅读 · 0 评论 -
最长公共前缀
输入: [“flower”,“flow”,“flight”] 输出: “fl”class Solution { public String longestCommonPrefix(String[] strs) { if(strs==null||strs.length==0) { return ""; } int index = strs[0].length(); for(int i =0;i<index;i++) { char c = strs[原创 2020-09-19 23:37:44 · 85 阅读 · 0 评论 -
最接近的三位数之和
求出最接近的三数之和的结果class Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int n = nums.length; int best = 10000000; for (int i = 0; i < n; ++i) { if (i > 0 && nums[i] == nums[i - 1]) { continue;原创 2020-09-17 23:08:10 · 159 阅读 · 0 评论 -
给定一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长的包含有效括号的子串的长度。
使用栈来求解:class Solution { public int longestValidParentheses(String s) { int max = 0; Stack<Integer> stack = new Stack<>(); stack.push(-1); for (int i = 0; i < s.length(); i++) { if (s.charAt(i原创 2020-09-16 11:50:41 · 1429 阅读 · 0 评论 -
给定一个二叉树,求二叉树的前序 中序 后序遍历 使用递归和迭代算法,看这一篇就够了
递归算法**二叉树节点的定义。** public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }前序递归: public static void preOrder(TreeNode tree) { if (tree == null) return; System.out原创 2020-09-15 23:29:04 · 374 阅读 · 0 评论