自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (1)
  • 收藏
  • 关注

原创 【leetCode】1734.解码异或后的排列

目录题目描述解题思路先来寻找几个规律:开始解题代码实现题目链接:解码异或后的排列题目描述给你一个整数数组perm,它是前n个正整数的排列,且n是个 奇数。它被加密成另一个长度为 n - 1的整数数组encoded,满足encoded[i] = perm[i] XOR perm[i + 1]。比方说,如果perm = [1,3,2],那么encoded = [2,1]。给你encoded数组,请你返回原始数组perm。题目保证答案...

2021-05-11 11:32:03 179

原创 【LeetCode】395. 至少有K个重复字符的最长子串

395. 至少有K个重复字符的最长子串难度中等292收藏分享切换为英文接收动态反馈找到给定字符串(由小写字符组成)中的最长子串T,要求T中的每一字符出现次数都不少于k。输出T的长度。示例 1:输入:s = "aaabb", k = 3输出:3最长子串为 "aaa" ,其中 'a' 重复了 3 次。示例 2:输入:s = "ababbc", k = 2输出:5最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3...

2021-02-27 09:25:49 229

原创 【LeetCode】703. 数据流中的第K大元素(C++)

目录题目描述解题思路代码实现题目链接:703. 数据流中的第 K 大元素题目描述设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。请实现 KthLargest类:KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。 int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。 示例:输入:["KthL..

2021-02-12 00:18:10 256 1

原创 【LeetCode】567. 字符串的排列 (C++)

目录题目描述解题思路唠唠叨叨代码实现题目链接:567. 字符串的排列题目描述给定两个字符串s1和s2,写一个函数来判断 s2 是否包含 s1的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False注意:输...

2021-02-10 16:11:45 281

原创 leetCode676:实现一个魔法字典,字典树迷惑题

目录一、题目描述二、解题思路三、代码实现一、题目描述设计一个使用单词列表进行初始化的数据结构,单词列表中的单词 互不相同 。 如果给出一个单词,请判定能否只将这个单词中一个字母换成另一个字母,使得所形成的新单词存在于你构建的字典中。实现 MagicDictionary 类:MagicDictionary() 初始化对象 void buildDict(String[]dictionary) 使用字符串数组dictionary 设定该数据结构,dictionary 中的字符串互..

2021-02-04 21:01:49 154

原创 leetCode692:前K个高频单词,字典树迷惑题

目录一、题目描述二、解题思路三、代码实现一、题目描述给一非空的单词列表,返回前k个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2输出: ["i", "love"]解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。 注意,按字母顺序 "i" 在 "love" ...

2021-02-02 11:08:49 222

原创 leetCode677:键值映射,字典树+dfs

目录一、题目描述二 、解题思路三、代码实现一、题目描述实现一个 MapSum 类,支持两个方法,insert和sum:MapSum() 初始化 MapSum 对象 void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。 int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。..

2021-02-01 10:45:49 94

原创 leetCode778:水位上升的泳池中游泳,并查集连通判定问题

目录一、题目描述二、解题思路三、代码实现一、题目描述在一个 N x N 的坐标方格grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。现在开始下雨了。当时间为t时,此时雨水导致水池中任意位置的水位为t。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。假定你可以瞬间移动无限距离,也就是默认在方格内部游动是不耗时的。当然,在你游泳的时候你必须待在坐标方格里面。你从坐标方格的左上平台 (0,0) 出发。...

2021-01-30 12:06:03 298

原创 leetCode1128:多米诺骨牌的等价对数,自定义哈希函数

目录一、题目描述二、解题思路三、代码实现一、题目描述给你一个由一些多米诺骨牌组成的列表dominoes。如果其中某一张多米诺骨牌可以通过旋转 0度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b]和dominoes[j] = [c, d]等价的前提是a==c且b==d,或是a==d 且b==c。在0 <= i < j < dominoes.length的前提下,找出满足d...

2021-01-26 15:18:34 184

原创 LeetCode421:数组中两个数的最大异或值

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个非空数组,数组中元素为 a0, a1, a2, … , an-1,其中 0 ≤ ai < 231。找到 ai 和aj最大的异或 (XOR) 运算结果,其中0 ≤ i,j < n。你能在O(n)的时间解决这个问题吗?示例:输入: [3, 10, 5, 25, 2, 8]输出: 28解释: 最大的结果是 5 ^ 25 = 28.二、解题思路这题O(n^2)的想法很容易,但是超...

2021-01-23 18:00:27 489

原创 leetCode1489:找到最小生成树里的关键边和伪关键边

一、题目描述给你一个 n个点的带权无向连通图,节点编号为 0到 n-1,同时还有一个数组 edges,其中 edges[i] = [fromi, toi, weighti]表示在fromi和toi节点之间有一条带权无向边。最小生成树(MST) 是给定图中边的一个子集,它连接了所有节点且没有环,而且这些边的权值和最小。请你找到给定图中最小生成树的所有关键边和伪关键边。如果从图中删去某条边,会导致最小生成树的权值和增加,那么我们就说它是一条关键边。伪关键边则是可能会出现在某些最小生成...

2021-01-22 11:41:30 252

原创 leetCode1023:驼峰式匹配

目录一、题目描述二、解题思路三、代码实现一、题目描述如果我们可以将小写字母插入模式串pattern得到待查询项query,那么待查询项与给定模式串匹配。(我们可以在任何位置插入每个字符,也可以插入 0 个字符。)给定待查询列表queries,和模式串pattern,返回由布尔值组成的答案列表answer。只有在待查项queries[i] 与模式串pattern 匹配时,answer[i]才为 true,否则为 false。示例 1:输入:queri...

2021-01-20 16:27:00 167

原创 leetCode1638:统计只差一个字符的子串数目

目录一、题目描述二、解题思路三、代码实现一、题目描述给你两个字符串s 和t,请你找出 s中的非空子串的数目,这些子串满足替换 一个不同字符以后,是 t串的子串。换言之,请你找到 s和 t串中 恰好只有一个字符不同的子字符串对的数目。比方说,"computer" 和"computation" 加粗部分只有一个字符不同:'e'/'a',所以这一对子字符串会给答案加 1 。请你返回满足上述条件的不同子字符串对数目。一个 子字符串是一个字符串中连续的字符。...

2021-01-19 11:20:49 237

原创 leetCode803:打砖块

目录一、题目描述二、解题思路三、代码实现一、题目描述有一个 m x n 的二元网格,其中 1 表示砖块,0 表示空白。砖块 稳定(不会掉落)的前提是:一块砖直接连接到网格的顶部,或者 至少有一块相邻(4个方向之一)砖块 稳定 不会掉落时给你一个数组 hits ,这是需要依次消除砖块的位置。每当消除hits[i] = (rowi, coli) 位置上的砖块时,对应位置的砖块(若存在)会消失,然后其他的砖块可能因为这一消除操作而掉落。一旦砖块掉落,它会立即从网格中消失(即,它不会..

2021-01-16 13:21:44 153

原创 leetCode208:实现一棵前缀树

目录一、题目描述二、解题思路三、代码实现一、题目描述实现一个 Trie (前缀树),包含insert,search, 和startsWith这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app"); // 返回 truetrie....

2021-01-13 08:26:50 105

原创 leetCode1697:检查边长度限制的路径是否存在

目录一、题目描述二、解题思路三、代码实现一、题目描述给你一个 n个点组成的无向图边集edgeList,其中edgeList[i] = [ui, vi, disi]表示点ui 和点vi之间有一条长度为disi的边。请注意,两个点之间可能有 超过一条边。给你一个查询数组queries,其中queries[j] = [pj, qj, limitj],你的任务是对于每个查询queries[j],判断是否存在从pj到qj的路径,且这条路径上的每一条边都 ...

2021-01-10 11:19:06 180

原创 leetCode 面试题17.07

目录一、题目描述二、解题思路三、代码实现一、题目描述每年,政府都会公布一万个最常见的婴儿名字和它们出现的频率,也就是同名婴儿的数量。有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来。给定两个列表,一个是名字及对应的频率,另一个是本质相同的名字对。设计一个算法打印出每个真实名字的实际频率。注意,如果 John 和 Jon 是相同的,并且 Jon 和 Johnny 相同,则 John 与 Johnny 也相同,即它们有传递和对称性。在结果列表

2021-01-07 17:00:53 97

原创 leetCode399:除法求值

目录一、题目描述二、解题思路三、代码实现一、题目描述给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果

2021-01-06 16:02:50 159

原创 leetCode130:被围绕的区域

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个二维的矩阵,包含'X'和'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为'X'。 任何不在边界上...

2021-01-05 10:39:03 216

原创 leetCode330:按要求补齐数组

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个已排序的正整数数组 nums,和一个正整数n 。从[1, n]区间内选取任意个数字补充到nums中,使得[1, n]区间内的任何数字都可以用nums中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。示例1:输入: nums = [1,3], n = 6输出: 1解释:根据 nums里现有的组合[1], [3], [1,3],可以得出1, 3, 4。现在如果我们将2添...

2020-12-30 10:58:20 174

原创 leetCode1584:连接所有点的最小费用

目录一、题目描述二、解题思路三、代码实现一、题目描述给你一个points数组,表示 2D 平面上的一些点,其中points[i] = [xi, yi]。连接点[xi, yi] 和点[xj, yj]的费用为它们之间的 曼哈顿距离:|xi - xj| + |yi - yj|,其中|val|表示val的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有一条简单路径时,才认为所有点都已连接。示例 1:输入:points = ...

2020-12-28 20:47:45 509

原创 leetCode85:最大矩形

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个仅包含0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0.

2020-12-26 21:54:35 183

原创 leetCode面试题8.08:从重复符字符的排列组合(回溯去重使用map)

目录一、题目描述二、解题思路三、代码实现一、题目描述有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。示例1:输入:S = "qqe"输出:["eqq","qeq","qqe"]示例2:输入:S = "ab"输出:["ab", "ba"]提示:字符都是英文字母。 字符串长度在[1, 9]之间。二、解题思路暴力回溯依然可以解,时间代价较高。依然是看见了好的去重方式,所以记录下来。使用map统计字符的出现次数,然后根据...

2020-12-24 11:15:04 183

原创 leetCode134:分发糖果

目录一、题目描述二、解题思路三、代码实现一、题目描述老师想给孩子们分发糖果,有 N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例1:输入: [1,0,2]输出: 5解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。示例2:输入: [1,2,2]输出: ...

2020-12-24 09:26:52 99

原创 leetCode746:使用最小花费爬楼梯

目录一、题目描述二、解题思路三、代码实现一、题目描述数组的每个索引作为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶...

2020-12-21 09:54:34 122

原创 leetCode316:去除重复字母

目录一、题目描述二、解题思路三、代码实现一、题目描述给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。注意:该题与 1081 https://leetcode-cn.com/problems/smallest-subsequence-of-distinct-characters 相同示例 1:输入:s = "bcabc"输出:"abc"示例 2:输入:s = "cba.

2020-12-20 11:31:34 181 2

原创 leetCode48:旋转矩阵

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个 n×n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 mat...

2020-12-19 11:18:29 269 2

原创 leetCode39:组合总数(回溯去重记录)

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]...

2020-12-18 13:43:51 150

原创 leetCode290:单词规律

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一种规律 pattern和一个字符串str,判断 str 是否遵循相同的规律。这里的遵循指完全匹配,例如,pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2:输入:pattern = "abba", str = "dog cat ca...

2020-12-16 10:21:43 127

原创 leetCode980:不同路径3

一、题目描述在二维网格 grid 上,有 4 种类型的方格:1 表示起始方格。且只有一个起始方格。 2 表示结束方格,且只有一个结束方格。 0 表示我们可以走过的空方格。 -1 表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目。每一个无障碍方格都要通过一次,但是一条路径中不能重复通过同一个方格。示例 1:输入:[[1,0,0,0],[0,0,0,0],[0,0,2,-1]]输出:2解释:我们有以下两条路径:(0,..

2020-12-14 11:07:49 282

原创 leetCode649:Dota2参议院

目录一、题目描述二、解题思路三、代码实现这题是值得记录的一题,因为提交完发现时间效率和空间效率都比官方的高,对我来说这并不多见啊…有点小开心!一、题目描述Dota2 的世界里有两个阵营:Radiant(天辉)和Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中.

2020-12-11 14:09:22 129

原创 leetCode824:将数组拆分成斐波那契序列

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个数字字符串 S,比如 S = "123456579",我们可以将它分成斐波那契式的序列 [123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表 F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型); F.length >= 3; 对于所有的0 <= i < F.length - 2,都有 F[i] + F[i+1]

2020-12-08 14:31:28 111

原创 leetCode861:翻转后的矩阵得分

目录一、题目描述二、解题思路三、代码实现一、题目描述有一个二维矩阵A 其中每个元素的值为0或1。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 [[1,1,1,1],[1,0,0,1],...

2020-12-07 09:52:18 90

原创 leetCode621:任务调度器

给你一个用字符数组tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例 1:输入:tasks = ["A","A","A","B",..

2020-12-07 09:45:16 140

原创 leetCode659:分割数组为连续子序列

目录一、题目描述二、解题思路三、代码实现一、题目描述给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3 。如果可以完成上述分割,则返回 true ;否则,返回 false 。示例 1:输入: [1,2,3,3,4,5]输出: True解释:你可以分割出这样两个连续子序列 :1, 2, 33, 4, 5示例 2:输入: [1,2,3,3,4,4,5,5]输出:...

2020-12-04 12:32:27 228

原创 leetCode239:滑动窗口的最大值

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个数组 nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释: 滑动窗口的位置 最大值...

2020-12-04 11:42:11 331

原创 leetCode204:计算质数

目录一、题目描述二、解题方法三、代码实现一、题目描述统计所有小于非负整数n的质数的数量。示例 1:输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2:输入:n = 0输出:0示例 3:输入:n = 1输出:0提示:0 <= n <= 5 * 106二、解题方法这是一道简单题,如果不考虑优化,很快就能解决。主要是想记录下新接触到的这个优化方法:厄拉多筛选法:...

2020-12-03 10:37:28 234

原创 leetCode321:拼接最大数

目录一、题目描述二、解题思路三、代码实现一、题目描述给定长度分别为m和n的两个数组,其元素由0-9构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n)个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为k的数组。说明: 请尽可能地优化你算法的时间和空间复杂度。示例1:输入:nums1 = [3, 4, 6, 5]nums2 =...

2020-12-02 16:00:46 426

原创 leetCode34:在有序数组中查号元素的第一个和最后一个位置

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。进阶:你可以设计并实现时间复杂度为O(log n)的算法解决此问题吗? 示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例2:输入:nums = [5,7,7,8,8,1...

2020-12-01 10:35:41 184

原创 leetCode767:重构字符串

目录一、题目描述二、解题思路三、代码实现一、题目描述给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例1:输入: S = "aab"输出: "aba"示例 2:输入: S = "aaab"输出: ""注意:S 只包含小写字母并且长度在[1, 500]区间内。二、解题思路可以先直观经验考虑这道题,应该能想到插空法,就是在两个相同的字符之间插入一个不同的字符。那就会想到统计每种字符.

2020-11-30 17:08:28 218

boostdesc_bgm.i文件.zip

OpenCV编译过程中需要的文件,编译时可能会下载失败,下载失败则会报确实文件的错误,此时最好是手动下载资源然后再重新make。

2019-09-19

空空如也

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

TA关注的人

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