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

leetcode 337. 打家劫舍 III java【代码】

题目: 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。 计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。 示例 1: 输入: [3,2,3,null,3,null,...

leetcode 22. 括号生成 java【代码】

题目: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()"] 解题:class Solution {public List<String> generateParenthesis(int n) {List<String> res = new ArrayList<>();return st(n,n,res,"");}public static List<String> st(int l,int r, List<String> res, String stemp){if(l == 0 &...

leetcode 744.寻找比目标字母大的最小字母(Java 二分查找 easy)【代码】

https://leetcode-cn.com/problems/find-smallest-letter-greater-than-target/submissions/ class Solution {public char nextGreatestLetter(char[] letters, char target) {int n=letters.length;int l=0,h=n-1;while(l<=h){int mid=l+(h-l)/2;if(letters[mid]<=target){//因为是求大于target的最小值,所以此处是小于等于。l=mid+1;//小于等于的时候l=mid+1。}else{h=mid-1;}}return l<n ? letters[l] : letters[0];//如果tar...

从零单刷Leetcode(JAVA描述)——88. 合并两个有序数组【图】

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输出: [1,2,2,3,5,6] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-sorted-array 著...

LeetCode练习———No9 回文数(Java版)【代码】【图】

题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 解题思路 首先想到的是递归解决回文数问题,但是问题限制了只能方法的参数只有一个int型整数,所...

leetcode 刷题记录(java)-持续更新【代码】【图】

感觉说的挺好的,值得学习 1 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。2 本文链接:https://blog.csdn.net/liujiaqi12345/article/details/883570413 Leetcode JAVA 题解: https://github.com/mJackie/leetcode4 自己日常刷题经过是这样的:5 6 拿到题目,看一眼Difficulty,然后自己思考一下解题思路。如果解不出来,就记下在哪里卡住了,难点在哪。7 如果对应的题目有Solu...

leetcode 494. 目标和 java【代码】

题目: 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例 1: 输入: nums: [1, 1, 1, 1, 1], S: 3输出: 5解释: -1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3 一共有5种方法让最终目标和为3。注意: 数组的长度不会超过20,并...

LeetCode#211 Add and Search Word - Data structure design Java解法(使用Trie树的结构)【代码】

题干 设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word)search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。 示例: addWord("bad") addWord("dad") addWord("mad") search("pad") -> false search("bad") -> true search(".ad") -> true search("b..") -> true说明: 你可以假设所有单词都是由小写字母 a-z 组成的。 解法 创建Trie树,使用递归方式检索...

[leetcode] 45. Jump Game II (java)【代码】

Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Your goal is to reach the last index in the minimum number of jumps. Example: Input: [2,3,1,1,4] Output: 2 Explanation: The minimum number of jumps to reach the last index is 2. Jump 1 step from index 0 to 1, then 3 ...

【Java】LeetCode合并两个有序数组【代码】【图】

给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6] package Leetcode;public class 合并两个有序数组 {public static void merge(int[] nums1, ...

leetcode-1108. IP 地址无效化 力扣 Java版本

给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。 所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address = "1.1.1.1" 输出:"1[.]1[.]1[.]1" 示例 2:输入:address = "255.100.50.0" 输出:"255[.]100[.]50[.]0"思路:本题大体就是字符串的运用,在java里有几个方法,结合一起用就可以了。public String defangIPaddr(String address) {StringBuffer sb = new StringBuffer();for (...

leetcode 报数 java

规律不多说,可以去LeetCode看评论。 其实我很早就想到了解法,但是用 JAVA 我比较陌生,一直用代码实现不了解法。 几个月没做题,脑子比较迟钝,这个题目做了大概 3 小时 。 思路: 模拟规律,用循环做。 1.初始化 str = “1”; 2.一个循环,循环的层数即是 n 。 3.用一个 pre 记录 str 的第一个值。用一个 count = 1,代表目前只有一个重复的 pre 。设置一个stringBulider 类,为 ans。 4.再用一个循环,循环的层数代表...

java链表 递归 leetCode24 图解 简单题【图】

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 图解交换一个节点(while循环即可解决)递归算法图解: 解释:每层递归的都会返回递归层新的...

leetcode刷题:268.缺失数字(Java)【代码】

题目描述: 给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。 示例 1:输入: [3,0,1] 输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1] 输出: 8说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现? 思路: 因为只缺一个数,原数组中也没有重复数据,只需要将数组中所有元素相加求和,再与本来1~n的所有数的和求差就能得出却的那个数。 class Solution {public int missingNumber...

从零单刷Leetcode(JAVA描述)——145. 二叉树的后序遍历【代码】【图】

给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 12 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-postorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* T...