【[LeetCode][Java] Surrounded Regions】教程文章相关的互联网学习教程文章

JAVA程序设计:最大间距(LeetCode:164)

给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 示例 1: 输入: [3,6,9,1] 输出: 3 解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。 示例 2: 输入: [10] 输出: 0 解释: 数组元素个数小于 2,因此返回 0。 说明: 你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。 请尝试在线性时间复杂度和空间复杂度的条件下...

LeetCode ---- 102. 二叉树的层次遍历 ( java, c++)【图】

/*** 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 root) {List<List<Integer>> res = new ArrayList();if(root == null){return res;}Queue<TreeNode> q = new LinkedList();//层次遍历,用队列实现q.offer(root); //将根节点入队TreeNode las...

LeetCode ---- 141. 环形链表 (c++, java实现)【图】

https://leetcode-cn.com/problems/linked-list-cycle/ 经典解法是: 设置2个指针,一个慢指针,每次走一步;一个快指针,每次走2步; (证明快慢指针一定会相遇:) 当有环的时候,快指针先入环,当慢指针入环后,快慢指针就变成追赶问题了。 快指针追赶慢指针,每走一步它们的距离都会缩小1,直到相遇为止。 //ref: https://hit-alibaba.github.io/interview/basic/algo/Linked-List.html C++ 最容易想到的思路是存一个所有...

Leetcode刷题java之852. 山脉数组的峰顶索引

执行结果: 通过 显示详情 执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消耗 :42.8 MB, 在所有 Java 提交中击败了46.09%的用户 题目: 我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1] 给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1] 的 i 的...

【Java】【LeetCode】64. Minimum Path Sum【代码】

题目: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path. Note: You can only move either down or right at any point in time. Example:Input: [ [1,3,1],[1,5,1],[4,2,1] ] Output: 7 Explanation: Because the path 1→3→1→1→1 minimizes the sum.题解: 这道题跟Unique Path系列是思路一样的。具体思路看代码就...

leetcode76——最小覆盖子串——java实现【代码】【图】

题目要求:分析: 这道题目利用滑动窗口来做,感谢滑动窗口算法通用思想的分析。 在这道题目中,设置一个HashMap用来存储字符串T的字母和个数,然后对字符串S进行遍历,如果遍历到的字符在map中存在,则将其个数减1,并且还要设置一个计数器count,其初始值为t.length(),当map中字符的个数≥0时,count --,当count = 0时,就证明目前遍历的字符时包含所有T的字符的。 然后要求的时最小的子串,那么只要继续遍历过程,再进行比较就...

LeetCode题解(C、JAVA)【代码】

1 两数之和(Two Sum) /*** Note: The returned array must be malloced, assume caller calls free().*/ int* twoSum(int* nums, int numsSize, int target) {int *res = (int*)malloc(sizeof(int)*2);for(int i = 0;i < numsSize-1;i++){for(int j = i+1;j < numsSize;j++){if(nums[i]+nums[j] == target){res[0] = i;res[1] = j;return res;}}}return res; }class Solution {public int[] twoSum(int[] nums, int target) {H...

leetcode 49 字母异位词分组 java实现【代码】

leetcode 49 字母异位词分组 java实现 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 输出: [ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”] ] 说明: 所有输入均为小写字母。 不考虑答案输出的顺序。 public List<List<String>> groupAnagrams(String[] strs) {//创建新变量List<List<String>> res...

JAVA程序设计:克隆图(LeetCode:133)【图】

给定无向连通图中一个节点的引用,返回该图的深拷贝(克隆)。图中的每个节点都包含它的值 val(Int) 和其邻居的列表(list[Node])。示例: 输入: {"$id":"1","neighbors":[{"$id":"2","neighbors":[{"$ref":"1"},{"$id":"3","neighbors":[{"$ref":"2"},{"$id":"4","neighbors":[{"$ref":"3"},{"$ref":"1"}],"val":4}],"val":3}],"val":2},{"$ref":"4"}],"val":1} 解释: 节点 1 的值是 1,它有两个邻居:节点 2 和 4 。 节点 2...

JAVA程序设计:路径总和 II(LeetCode:113)

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回: [ [5,4,11,2], [5,8,4,5] ] 思路:dfs搞搞就好了。class TreeNode {int val;TreeNode left;Tree...

leetcode:101. 对称二叉树(Java)【代码】

题目描述 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public boolean isSymmetric(TreeNode ...

Leetcode刷题java之872. 叶子相似的树

执行结果: 通过 显示详情 执行用时 :2 ms, 在所有 Java 提交中击败了67.95% 的用户 内存消耗 :35.4 MB, 在所有 Java 提交中击败了49.39%的用户 题目: 请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。如果两棵树的叶子序列相同,则返回true 思路: 利用递归与深度优先遍历的思想,如果当前节点的左和右都是空,那么这个节点就是叶子节点,我们可以通过深度优先遍历,将叶子节点进行记录,然...

Leetcode刷题java之107. 二叉树的层次遍历 II

执行结果: 通过 显示详情 执行用时 :3 ms, 在所有 Java 提交中击败了73.56% 的用户 内存消耗 :37.1 MB, 在所有 Java 提交中击败了38.60%的用户 题目: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为: [ [15,7], [9,20], [3] ] 思路: 利用队列...

JAVA程序设计: 二叉树的层次遍历(LeetCode:102)

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 思路:采用队列广搜一遍就行了。class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; } }class Solution {public List<List<Integer>> levelOrder(TreeNode root) {int...