自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(282)
  • 资源 (2)
  • 收藏
  • 关注

原创 [LeetCode]890. 查找和替换模式

890. 查找和替换模式你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母。)返回 words 中与给定模式匹配的单词列表。你可以按任何顺序返回答案。 示例:输入:words = ["abc","deq

2022-06-12 09:24:03 133

原创 [LeetCode]2222. 选择建筑的方案数

2222. 选择建筑的方案数给你一个下标从 0 开始的二进制字符串 s ,它表示一条街沿途的建筑类型,其中:s[i] = '0' 表示第 i 栋建筑是一栋办公楼,s[i] = '1' 表示第 i 栋建筑是一间餐厅。作为市政厅的官员,你需要随机 选择 3 栋建筑。然而,为了确保多样性,选出来的 3 栋建筑 相邻 的两栋不能是同一类型。比方说,给你 s = "001101" ,我们不能选择第 1 ,3 和 5 栋建筑,因为得到的子序列是 "011" ,有相邻两栋建筑是同一类型,所以 不合 题意。

2022-06-11 20:33:17 132

原创 [LeetCode]300. 最长递增子序列

300. 最长递增子序列

2022-06-11 12:32:05 748

原创 [LeetCode]926. 将字符串翻转到单调递增

926. 将字符串翻转到单调递增如果一个二进制字符串,是以一些 0(可能没有 0)后面跟着一些 1(也可能没有 1)的形式组成的,那么该字符串是 单调递增 的。给你一个二进制字符串 s,你可以将任何 0 翻转为 1 或者将 1 翻转为 0 。返回使 s 单调递增的最小翻转次数。 示例 1:输入:s = "00110"输出:1解释:翻转最后一位得到 00111.示例 2:输入:s = "010110"输出:2解释:翻转得到 011111,或者是 000111。示例 3:

2022-06-11 12:21:09 1265

原创 [LeetCode]730. 统计不同回文子序列

730. 统计不同回文子序列

2022-06-10 09:34:37 170

原创 [LeetCode]6. Z 字形变换

6. Z 字形变换

2022-06-09 21:28:48 70

原创 [LeetCode]497. 非重叠矩形中的随机点

497. 非重叠矩形中的随机点

2022-06-09 09:05:00 310

原创 [LeetCode]347. 前 K 个高频元素

347. 前 K 个高频元素

2022-06-08 21:01:09 329

原创 [LeetCode]340.最多有K个不同字符的最长子串

340.最多有K个不同字符的最长子串

2022-06-08 09:46:03 364

原创 [LeetCode]159.最多有两个不同字符的最长子串

159.最多有两个不同字符的最长子串

2022-06-08 09:43:30 297

原创 [LeetCode]1037. 有效的回旋镖

1037. 有效的回旋镖

2022-06-08 06:56:11 232 2

原创 向上取整向下取整探讨

先放结论:左边式子表示aaa对b+1b+1b+1向上取整,右边是取整的算法ceil(ab+1)ceil(\cfrac {a} {b+1})ceil(b+1a​) = a+bb+1\cfrac {a+b} {b+1}b+1a+b​上面两种情况下,都是左边=右边还有一种等价的形式:ceil(ab)ceil(\cfrac {a} {b})ceil(ba​) = a+b−1b\cfrac {a+b-1} {b}ba+b−1​ 即⌈ab⌉⌈\cfrac {a} {b}⌉⌈ba​⌉ = a+b−1b\cfrac {a

2022-06-07 19:23:57 11022 1

原创 [LeetCode]875. 爱吃香蕉的珂珂

875. 爱吃香蕉的珂珂

2022-06-07 08:33:47 160

原创 [LeetCode]478. 在圆内随机生成点

478. 在圆内随机生成点解法方法1:拒绝采样方法2:极坐标ρ= random ∗r极坐标的的角度也是随机的 θ = 2∗π∗randomx = x_center + ρ * cos(θ)y = y_center + ρ * sin(θ)

2022-06-05 09:17:49 161

原创 [LeetCode]450. 删除二叉搜索树中的节点

450. 删除二叉搜索树中的节点解法方法1:递归+分情况讨论当前节点的值比目标值小,说明目标节点在右子树上,删除后的结果挂在当前节点的右孩子上当前节点的值比目标值大,说明目标节点在左子树上,删除后的结果挂在当前节点的左孩子上如果当前节点与目标值相同,说明当前节点为目标节点,要删除当前节点,分为以下三种情况:其无左子树:其右子树顶替其位置,删除了该节点其无右子树:其左子树顶替其位置,删除了该节点其左右子节点都有:其左子树转移到其右子树的最左节点的左子树上,然后右子树顶替其位置,由此删除了该

2022-06-02 08:02:28 245

原创 [LeetCode]473. 火柴拼正方形

473. 火柴拼正方形解法方法1:回溯另,逆序排序写法另方法2:动态规划+状态压缩

2022-06-01 08:27:47 546

原创 [LeetCode]剑指 Offer II 067. 最大的异或

剑指 Offer II 067. 最大的异或

2022-05-31 22:09:26 163

原创 [LeetCode]421. 数组中两个数的最大异或值

421. 数组中两个数的最大异或值

2022-05-31 22:04:07 159

原创 [LeetCode]899. 有序队列

题目899. 有序队列899. 有序队列给定一个字符串 s 和一个整数 k 。你可以从 s 的前 k 个字母中选择一个,并把它加到字符串的末尾。返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串 。 示例 1:输入:s = "cba", k = 1输出:"acb"解释:在第一步中,我们将第一个字符(“c”)移动到最后,获得字符串 “bac”。在第二步中,我们将第一个字符(“b”)移动到最后,获得最终结果 “acb”。示例 2:输入:s = "baaca", k

2022-05-31 10:26:41 209

原创 [acwing]158.项链

158.项链static class Main { static Main main = new Main(); public static void main(String[] args) { main.process(); } private void process() { Scanner in = new Scanner(System.in); String a = in.next(), b = in.next

2022-05-31 09:32:08 113

原创 剑指 Offer II 087. 复原 IP

题目剑指 Offer II 087. 复原 IP 剑指 Offer II 087. 复原 IP 给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.3

2022-05-31 09:31:06 82

原创 [LeetCode]剑指 Offer II 114. 外星文字典

题目剑指 Offer II 114. 外星文字典剑指 Offer II 114. 外星文字典现有一种使用英语字母的外星文语言,这门语言的字母顺序与英语顺序不同。给定一个字符串列表 words ,作为这门语言的词典,words 中的字符串已经 按这门新语言的字母顺序进行了排序 。请你根据该词典还原出此语言中已知的字母顺序,并 按字母递增顺序 排列。若不存在合法字母顺序,返回 "" 。若存在多种可能的合法字母顺序,返回其中 任意一种 顺序即可。字符串 s 字典顺序小于 字符串 t 有两种情况:

2022-05-31 09:23:32 131

原创 [LeetCode]796. 旋转字符串

题目796. 旋转字符串796. 旋转字符串给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。s 的 旋转操作 就是将 s 最左边的字符移动到最右边。 例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。 示例 1:输入: s = "abcde", goal = "cdeab"输出: true示例 2:输入: s = "abcde", goal = "abced"输出: false 提示

2022-05-30 23:16:44 193

原创 [LeetCode]1022. 从根到叶的二进制数之和

题目1022. 从根到叶的二进制数之和1022. 从根到叶的二进制数之和给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。返回这些数字之和。题目数据保证答案是一个 32 位 整数。 示例 1:输入:root = [1,0,1

2022-05-30 08:18:37 134

原创 [LeetCode]1368. 使网格图至少有一条有效路径的最小代价

题目1368. 使网格图至少有一条有效路径的最小代价1368. 使网格图至少有一条有效路径的最小代价给你一个 m x n 的网格图 grid 。 grid 中每个格子都有一个数字,对应着从该格子出发下一步走的方向。 grid[i][j] 中的数字可能为以下几种情况:1 ,下一步往右走,也就是你会从 grid[i][j] 走到 grid[i][j + 1]2 ,下一步往左走,也就是你会从 grid[i][j] 走到 grid[i][j - 1]3 ,下一步往下走,也就是你会从 grid[i][j

2022-05-29 20:34:53 243

原创 [LeetCode]6081. 到达角落需要移除障碍物的最小数目

题目6081. 到达角落需要移除障碍物的最小数目6081. 到达角落需要移除障碍物的最小数目给你一个下标从 0 开始的二维整数数组 grid ,数组大小为 m x n 。每个单元格都是两个值之一:0 表示一个 空 单元格,1 表示一个可以移除的 障碍物 。你可以向上、下、左、右移动,从一个空单元格移动到另一个空单元格。现在你需要从左上角 (0, 0) 移动到右下角 (m - 1, n - 1) ,返回需要移除的障碍物的 最小 数目。 示例 1:输入:grid = [[0,1

2022-05-29 20:28:26 466

原创 [LeetCode]1293. 网格中的最短路径

题目1293. 网格中的最短路径1293. 网格中的最短路径给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1 。 示例 1:输入: grid = [[0,0,0],[1,1,0],[0,0,0],[0,1,1],[0,0,0]],

2022-05-29 16:51:42 1295

原创 剑指 Offer II 087. 复原 IP

题目剑指 Offer II 087. 复原 IP 剑指 Offer II 087. 复原 IP 给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.3

2022-05-29 09:38:22 186

原创 [LeetCode]468. 验证IP地址

题目468. 验证IP地址468. 验证IP地址给定一个字符串 queryIP。如果是有效的 IPv4 地址,返回 "IPv4" ;如果是有效的 IPv6 地址,返回 "IPv6" ;如果不是上述类型的 IP 地址,返回 "Neither" 。有效的IPv4地址 是 “x1.x2.x3.x4” 形式的IP地址。 其中 0 <= xi <= 255 且 xi 不能包含 前导零。例如: “192.168.1.1” 、 “192.168.1.0” 为有效IPv4地址, “192.168.01

2022-05-29 09:09:42 154

原创 [LeetCode]84. 柱状图中最大的矩形

题目84. 柱状图中最大的矩形84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10示例 2:输入: heights = [2,4]输出: 4 提示:1 <= heights.length <=1050 <= hei

2022-05-28 21:47:19 184

原创 [LeetCode]1856. 子数组最小乘积的最大值

题目1856. 子数组最小乘积的最大值1856. 子数组最小乘积的最大值一个数组的 最小乘积 定义为这个数组中 最小值 乘以 数组的 和 。比方说,数组 [3,2,5] (最小值是 2)的最小乘积为 2 * (3+2+5) = 2 * 10 = 20 。给你一个正整数数组 nums ,请你返回 nums 任意 非空子数组 的最小乘积 的 最大值 。由于答案可能很大,请你返回答案对 109 + 7 取余 的结果。请注意,最小乘积的最大值考虑的是取余操作 之前 的结果。题目保证最小乘积的最大值

2022-05-28 19:45:32 265

原创 [LeetCode]739. 每日温度

题目739. 每日温度739. 每日温度给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指在第 i 天之后,才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出: [1,1

2022-05-28 18:11:11 228

原创 [LeetCode]856. 括号的分数

题目856. 括号的分数856. 括号的分数给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。 示例 1:输入: "()"输出: 1示例 2:输入: "(())"输出: 2示例 3:输入: "()()"输出: 2示例 4:输入: "(()(()))"输出: 6 提示:S 是平衡括号字符串,且只含有 ( 和

2022-05-28 11:17:25 276

原创 [LeetCode]402. 移掉 K 位数字

题目402. 移掉 K 位数字402. 移掉 K 位数字给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。 示例 1 :输入:num = "1432219", k = 3输出:"1219"解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。示例 2 :输入:num = "10200", k = 1输出:"200"解释:移掉首位的 1 剩下的数字为 200. 注意

2022-05-27 09:01:13 288

原创 [LeetCode]467. 环绕字符串中唯一的子字符串

题目467. 环绕字符串中唯一的子字符串467. 环绕字符串中唯一的子字符串把字符串 s 看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd...." . 现在给定另一个字符串 p 。返回 s 中 唯一 的 p 的 非空子串 的数量 。 示例 1:输入: p = "a"输出: 1解释: 字符串 s

2022-05-25 09:09:09 203

原创 [LeetCode]496. 下一个更大元素 I

题目496. 下一个更大元素 I496. 下一个更大元素 Inums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素

2022-05-24 22:53:00 69

原创 [LeetCode]907. 子数组的最小值之和

题目907. 子数组的最小值之和907. 子数组的最小值之和给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 10^9 + 7 。 示例 1:输入:arr = [3,1,2,4]输出:17解释:子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。 最小值为 3,1,2,4,1,1,2,1,1,1,和为 17。示

2022-05-24 09:05:50 294

原创 [LeetCode]2104. 子数组范围和

题目2104. 子数组范围和2104. 子数组范围和给你一个整数数组 nums 。nums 中,子数组的 范围 是子数组中最大元素和最小元素的差值。返回 nums 中 所有 子数组范围的 和 。子数组是数组中一个连续 非空 的元素序列。 示例 1:输入:nums = [1,2,3]输出:4解释:nums 的 6 个子数组如下所示:[1],范围 = 最大 - 最小 = 1 - 1 = 0 [2],范围 = 2 - 2 = 0[3],范围 = 3 - 3 = 0[1,2],

2022-05-24 08:41:14 340 2

原创 [LeetCode]965. 单值二叉树

题目965. 单值二叉树965. 单值二叉树如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。 示例 1:输入:[1,1,1,1,1,null,1]输出:true示例 2:输入:[2,2,2,5,2]输出:false 提示:给定树的节点数范围是 [1, 100]。每个节点的值都是整数,范围为 [0, 99] 。解法方法1:递归public boolean isUniva

2022-05-24 07:15:11 75

原创 [LeetCode]675. 为高尔夫比赛砍树

题目675. 为高尔夫比赛砍树675. 为高尔夫比赛砍树你被请来给一个要举办高尔夫比赛的树林砍树。树林由一个 m x n 的矩阵表示, 在这个矩阵中:0 表示障碍,无法触碰1 表示地面,可以行走比 1 大的数 表示有树的单元格,可以行走,数值表示树的高度每一步,你都可以向上、下、左、右四个方向之一移动一个单位,如果你站的地方有一棵树,那么你可以决定是否要砍倒它。你需要按照树的高度从低向高砍掉所有的树,每砍过一颗树,该单元格的值变为 1(即变为地面)。你将从 (0, 0) 点开始工作,

2022-05-23 08:47:47 179

Grokking the System Design by educative.io (z-lib.org).pdf

Grokking the System Design by educative.io

2021-08-24

猎豹wifi

猎豹wifi

2014-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除