java
文章平均质量分 50
涛涛英语学不进去
Ctrl + C Ctrl + V AC !!! over .. next !!!
展开
-
集合深度学习08—Map
【代码】集合深度学习08—Map。原创 2022-08-24 21:57:03 · 336 阅读 · 0 评论 -
集合深度学习01—Collection
为什么要学集合?有数组不就够了吗。所以要学集合。原创 2022-08-23 14:23:37 · 234 阅读 · 0 评论 -
回溯:组合、子集、排列 算法总结
for i =startIndex + 1, backtracking i + 1 // 不可重复使用当前元素。for i =startIndex + 1, backtracking i + 1 // 不可重复使用当前元素。for i =startIndex + 1, backtracking i + 1 // 不可重复使用当前元素。//重复解 则 跳过。for i = 0 //全排列。原创 2022-08-21 16:42:21 · 204 阅读 · 0 评论 -
leetcode刷题:动态规划05(不同路径 II)
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?如果第一行或者第一列有障碍物,则障碍物之后的路线均为0。网格中的障碍物和空位置分别用1和0来表示。这题难在障碍物上,可能不止一个障碍物。障碍物如果是起点,就直接返回0....原创 2022-07-23 11:26:31 · 163 阅读 · 0 评论 -
leetcode刷题:动态规划03(使用最小花费爬楼梯)
数组的每个下标作为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](下标从0开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。解释最低花费方式是从cost[0]开始,逐个经过那些1,跳过cost[3],一共花费6。输入cost=[1,100,1,1,1,100,1,1,100,1]解释最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。...原创 2022-07-22 13:31:11 · 164 阅读 · 0 评论 -
Java技术之AQS详解
https//www.jianshu.com/p/da9d051dcc3d。转载 2022-07-21 17:38:51 · 106 阅读 · 0 评论 -
leetcode刷题:动态规划01(斐波那契数列)
斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。F(n)=F(n-1)+F(n-2),其中n>1。这一已经是动态规划思想了,再整理整理。效果一般般,尝试加入数组,以空间换时间。给你n,请计算F(n)。先试试最熟悉的递归方式。...原创 2022-07-20 09:28:14 · 165 阅读 · 0 评论 -
Java 二维数组排序 —— Arrays.sort 案例
对[[-2147483646,-2147483645],[2147483646,2147483647]]这个测例会溢出。如果xstart相同,以xend升序。第三种方式是第一种的改进,防止溢出的。二维数组根据不同列进行升序降序选择。二维数组例子,直接复制去吧。这个是二维数组的单关键字升序。以xstart升序。...原创 2022-07-16 19:36:34 · 925 阅读 · 0 评论 -
leetcode刷题:贪心算法08(加油站)
你不能从0号或1号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。开往0号加油站,此时油箱有4-3+2=3升汽油。开往1号加油站,此时油箱有3-3+3=3升汽油。你无法返回2号加油站,因为返程需要消耗4升汽油,但是你的油箱只有3升汽油。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。.........原创 2022-07-16 10:08:25 · 291 阅读 · 0 评论 -
leetcode刷题:贪心算法07(K 次取反后最大化的数组和)
给定一个整数数组A,我们只能用以下方法修改该数组我们选择某个索引i并将A[i]替换为-A[i],然后总共重复这个过程K次。(我们可以多次选择同一个索引i。*先看有没有负数,如果没有,就把最小非负数直接变k次。*那就比较最小非负数和最小负数的绝对值,变较小值。*如果有负数,从最大负数开始变,直接变到0截止。以这种方式修改数组后,返回数组可能的最大和。*如果变不到非负数,变到哪是哪。*如果变到了非负数,且无0。...原创 2022-07-15 18:17:50 · 121 阅读 · 0 评论 -
leetcode刷题:贪心算法05(跳跃游戏)
找到为0的数,然后反向向前找,计算偏移量,如果偏移量比最大的数还大,就跳不过去了。给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。...原创 2022-07-15 10:53:55 · 75 阅读 · 0 评论 -
leetcode刷题:贪心算法02(摆动序列)
例如,[1,7,4,9,2,5]是一个摆动序列,因为差值(6,-3,5,-7,3)是正负交替出现的。相反,[1,4,7,2,5]和[1,7,4,5,5]不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。少于两个元素的序列也是摆动序列。给定一个整数序列,返回作为摆动序列的最长子序列的长度。通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。...原创 2022-07-15 07:16:33 · 1223 阅读 · 0 评论 -
leetcode刷题:贪心算法01(分发饼干)
力扣题目链接假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。示例 1:示例 2:提示:...原创 2022-07-14 12:59:17 · 215 阅读 · 0 评论 -
leetcode刷题:回溯算法08(复原 IP 地址)
力扣题目链接给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效的 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效的 IP 地址。示例 1:示例 2:示例 3:示例 4:示例 5:提示:...原创 2022-07-10 18:11:20 · 469 阅读 · 0 评论 -
leetcode刷题:回溯算法07(分割回文串)
力扣题目链接给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]]原创 2022-07-10 17:11:46 · 182 阅读 · 0 评论 -
leetcode刷题:回溯算法06(组合总和II)
力扣题目链接给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6]]示例 2:输入: candida原创 2022-07-09 14:03:42 · 95 阅读 · 0 评论 -
leetcode刷题:回溯算法05( 组合总和)
力扣题目链接给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]示例 2:输入:candidates = [2,3,5], target = 8,所求解集为:[[2,2,2,2],[2,3,3],[3,5]原创 2022-07-09 13:01:44 · 225 阅读 · 0 评论 -
leetcode刷题:回溯算法04( 电话号码的字母组合)
力扣题目链接给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]....原创 2022-07-08 18:15:56 · 111 阅读 · 0 评论 -
leetcode刷题:回溯算法03( 组合优化III)
力扣题目链接找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]...原创 2022-07-08 16:56:22 · 79 阅读 · 0 评论 -
leetcode刷题:回溯算法02(组合优化)
力扣题目链接给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]原创 2022-07-08 15:29:55 · 181 阅读 · 0 评论 -
leetcode刷题:回溯算法01(组合)
力扣题目链接给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]原创 2022-07-08 14:37:08 · 120 阅读 · 0 评论 -
leetcode刷题:二叉树30(把二叉搜索树转换为累加树)
力扣题目链接给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例 1:示例 2:示例 3:示例 4:提示:......原创 2022-07-08 10:19:45 · 97 阅读 · 0 评论 -
leetcode刷题:二叉树29(将有序数组转换为二叉搜索树)
力扣题目链接将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:原创 2022-07-07 19:01:01 · 64 阅读 · 0 评论 -
leetcode刷题:二叉树28(修剪二叉搜索树)
力扣题目链接给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。...原创 2022-07-07 17:10:18 · 155 阅读 · 0 评论 -
leetcode刷题:二叉树27(删除二叉搜索树中的节点)
力扣题目链接给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 O(h)O(h)O(h),h 为树的高度。示例:搜索树的节点删除要比节点增加复杂的多,有很多情况需要考虑,做好心里准备。...原创 2022-07-06 20:25:28 · 134 阅读 · 0 评论 -
leetcode刷题:二叉树26(二叉搜索树中的插入操作)
力扣题目链接给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。提示:...原创 2022-07-06 15:06:46 · 72 阅读 · 0 评论 -
leetcode刷题:二叉树25(二叉搜索树的最近公共祖先)
力扣题目链接给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:示例 2:......原创 2022-07-06 14:43:06 · 100 阅读 · 0 评论 -
leetcode刷题:二叉树24(二叉树的最近公共祖先)
力扣题目链接给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 和节点原创 2022-07-06 12:29:52 · 86 阅读 · 0 评论 -
leetcode刷题:二叉树23(二叉搜索树中的众数)
力扣题目链接给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:例如:给定 BST [1,null,2,2],返回[2].提示:如果众数超过1个,不需考虑输出顺序进阶:你可以不使用额外的空间吗?(假设由递归产生的隐式调用栈的开销不被计算在内)...原创 2022-07-06 10:09:06 · 109 阅读 · 0 评论 -
leetcode刷题:二叉树22(二叉搜索树的最小绝对差)
力扣题目链接给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:提示:树中至少有 2 个节点。原创 2022-07-05 22:25:06 · 141 阅读 · 0 评论 -
leetcode刷题:二叉树21(验证二叉搜索树)
力扣题目链接给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:原创 2022-07-05 21:57:20 · 93 阅读 · 0 评论 -
leetcode刷题:二叉树20(二叉搜索树中的搜索)
力扣题目地址给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。例如,在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们应该返回 NULL。...原创 2022-07-05 21:30:01 · 77 阅读 · 0 评论 -
leetcode刷题:二叉树19(合并二叉树)
力扣题目链接给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。示例 1:注意: 合并必须从两个树的根节点开始。......原创 2022-07-05 21:10:42 · 148 阅读 · 0 评论 -
leetcode刷题:二叉树18(最大二叉树)
力扣题目地址给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:通过给定的数组构建最大二叉树,并且输出这个树的根节点。示例 :提示:给定的数组的大小在 [1, 1000] 之间。...原创 2022-07-05 17:50:40 · 78 阅读 · 0 评论 -
leetcode刷题:二叉树17(从中序与后序遍历序列构造二叉树)
力扣题目链接根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树:原创 2022-07-05 15:24:14 · 98 阅读 · 0 评论 -
leetcode刷题:二叉树16(路径总和)
力扣题目链接给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。...原创 2022-07-05 12:30:39 · 166 阅读 · 0 评论 -
leetcode刷题:二叉树15(找树左下角的值)
力扣题目链接给定一个二叉树,在树的最后一行找到最左边的值。示例 1:示例 2:原创 2022-07-05 11:38:12 · 133 阅读 · 0 评论 -
leetcode刷题:二叉树14(左叶子之和)
力扣题目链接计算给定二叉树的所有左叶子之和。示例:原创 2022-07-05 11:22:38 · 56 阅读 · 0 评论 -
leetcode刷题:二叉树13(相同的树)
力扣题目链接给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。原创 2022-07-04 20:48:50 · 101 阅读 · 0 评论 -
leetcode刷题:二叉树11(平衡二叉树)
力扣题目链接给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4]返回 false 。...原创 2022-07-04 18:02:19 · 399 阅读 · 0 评论