![](https://img-blog.csdnimg.cn/20210123191425976.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
【LeetCode】
文章平均质量分 83
LeetCode刷题笔记
chen_song_
人终将被年少不可得之物质而困其一生
展开
-
LeetCode第 252 场周赛 之5187. 收集足够苹果的最小花园周长
LeetCode5187. 收集足够苹果的最小花园周长前言一,5187. 收集足够苹果的最小花园周长二,解题思路三, 代码总结)前言数学知识一,5187. 收集足够苹果的最小花园周长给你一个用无限二维网格表示的花园,每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| + |j| 个苹果。你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 ,且每条边都与两条坐标轴之一平行。给你一个整数 neededApples ,请你返回土地的 最小周长 ,使得 至少 有原创 2021-08-01 14:15:33 · 437 阅读 · 2 评论 -
数据结构之基数树(radix_tree)
数据结构之基数树(radix_tree)基数树(radix_tree)一,基数树数据的结构的介绍二, 基数树应用场景介绍三,基数树实现总结:基数树(radix_tree)基数树数据结构是在字典树(trie_tree)的原理上优化过来的, 是更加合理的使用内存和查询的效率。一,基数树数据的结构的介绍基数树数据结构二, 基数树应用场景介绍三,基数树实现总结:...原创 2021-04-04 22:31:26 · 3261 阅读 · 1 评论 -
并查集之LeetCode1579. 保证图可完全遍历
并查集之LeetCode1579. 保证图可完全遍历前言一,1579. 保证图可完全遍历二,解题思路三, 代码总结前言算法之并查集一,1579. 保证图可完全遍历Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边:类型 1:只能由 Alice 遍历。类型 2:只能由 Bob 遍历。类型 3:Alice 和 Bob 都可以遍历。给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typ原创 2021-01-28 20:14:27 · 209 阅读 · 0 评论 -
并查集之LeetCode959. 由斜杠划分区域
并查集之LeetCode959. 由斜杠划分区域前言一,959. 由斜杠划分区域二, 解题思路三, 代码总结前言算法之并查集一,959. 由斜杠划分区域在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。示例 1:输入:[" /","/ "]输出:2解释:2x2 网格如下:示例 2:输入:[" /"原创 2021-01-26 01:59:01 · 242 阅读 · 2 评论 -
并查集之LeetCode1319. 连通网络的操作次数
并查集之LeetCode1319. 连通网络的操作次数前言一、1319. 连通网络的操作次数二、解题思路三,代码总结前言算法之并查集一、1319. 连通网络的操作次数用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,原创 2021-01-23 16:23:50 · 164 阅读 · 1 评论 -
等差数列之1726. 同积元组
并查集之684. 冗余连接前言一, 684. 冗余连接二, 解题思路三, 代码总结前言一, 684. 冗余连接在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点原创 2021-01-18 00:14:19 · 237 阅读 · 0 评论 -
并查集之1584. 连接所有点的最小费用
并查集之1584. 连接所有点的最小费用前言一, 1584. 连接所有点的最小费用二, 解题思路***一共要分为两个步骤来做******第一次合并集合得了******第二次合并新的集合***三, 代码总结前言一, 1584. 连接所有点的最小费用给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示原创 2021-01-16 23:08:08 · 206 阅读 · 0 评论 -
并查集之面试题 17.07. 婴儿名字
并查集之面试题 17.07. 婴儿名字前言一, 面试题 17.07. 婴儿名字二,解题思路1, a和b是朋友, b和c是朋友,那a和c也是朋友。这就是典型并查集类型2, 字典序3,三, 代码总结前言并查集一, 面试题 17.07. 婴儿名字每年,政府都会公布一万个最常见的婴儿名字和它们出现的频率,也就是同名婴儿的数量。有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来。给定两个列表,一个是名字及对应的频率,另一个是本质相同的名字对。设计一个算法打印出每个原创 2021-01-14 00:16:31 · 216 阅读 · 0 评论 -
5642. 大餐计数之哈希O(1)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档5642. 大餐计数之哈希前言一、5642. 大餐计数之哈希O(1)二、 程序1,会超时的哦2,利用目标2的幂技巧①, 这边为什么是22呢是因为2212^{21}221是最大值②,比如: 1和什么数相加是2的幂总结前言大餐计数之哈希O(1)一、5642. 大餐计数之哈希O(1)大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousn原创 2021-01-03 20:07:13 · 307 阅读 · 0 评论 -
62. 不同路径之动态规划,排序组合
目录一, 62. 不同路径二, 解题思路1, 动态规划2,排列组合公式三, 解题程序四, 63. 不同路径 II五, 解题思路六, 解题程序七, 总结一, 62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3原创 2020-12-10 22:34:06 · 501 阅读 · 0 评论 -
842. 将数组拆分成斐波那契序列之深度遍历
文章目录一,842. 将数组拆分成斐波那契序列二, 解题思路三, 解题代码一,842. 将数组拆分成斐波那契序列给定一个数字字符串 S,比如 S = “123456579”,我们可以将它分成斐波那契式的序列 [123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表 F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型);F.length >= 3;对于所有的0 <= i < F.length -原创 2020-12-08 21:34:50 · 214 阅读 · 0 评论 -
381. O(1) 时间插入、删除和获取随机元素 - 允许重复之哈希函数和随机数的动态数组
文章目录一, O(1) 时间插入、删除和获取随机元素 - 允许重复二, 解题思路1 ,插入和删除①, 插入和删除时间复杂度是O(1)O(1)O(1) , 提到时间复杂度为O(1)O(1)O(1) 基本就是使用哈希函数解决,然后有可能重复的数据的就要在添加在哈希中添加entry结构中添加计数count的字段 count等于0时就删除这个节点,出现相同就++count就可以的不需要申请内存了② , 哈希碰撞的解决2, 随机数 时间复杂度O(1)O(1)O(1)①, 插入②, 删除三, 解题程序四, 总结一,原创 2020-11-25 00:15:49 · 219 阅读 · 0 评论 -
1588. 所有奇数长度子数组的和之奇偶数问题
文章目录一, 所有奇数长度子数组的和二, 解题思路①, 暴力破解②,利用数学奇偶数的知识三,解题代码四,总结一, 所有奇数长度子数组的和给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7原创 2020-11-22 16:39:42 · 372 阅读 · 0 评论 -
面试题 17.10. 主要元素之摩尔投票法
文章目录一, 面试题 17.10. 主要元素二, 解题思路 摩尔算法 投票算法三, 解题程序总结一, 面试题 17.10. 主要元素数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。示例 1:输入:[1,2,5,9,5,9,5,5,5]输出:5示例 2:输入:[3,2]输出:-1示例 3:输入:[2,2,1,1,1,2,2]输出:2说明:你有办法在时间复杂度为 O(N),空间复杂度为 O(1) 内完成吗?通过次数20,274提交次数34原创 2020-11-18 00:56:24 · 632 阅读 · 0 评论 -
406.根据身高重建队列
文章目录一,406.根据身高重建队列二, 解题思路分析1, 大致情况分为两种分别2, 身高相同的情况3, 身高不同的情况三,解题代码**C**四, 总结一,406.根据身高重建队列假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对 (h, k) 表示,其中 h 是这个人的身高,k 是应该排在这个人前面且身高大于或等于 h 的人数。 例如:[5,2] 表示前面应该有 2 个身高大于等于 5 的人,而 [5,0] 表示前面不应该存在身高大于等于 5 的人。编写一个算法,根据每个人的身高 h 重建这个原创 2020-11-17 23:15:32 · 385 阅读 · 0 评论 -
402.移掉K位数字
文章目录一, 移掉K位数字二, 解题思路1, 分析删除一个数字最大会影响到几位数字2, 对已经删除的数和已经没有数字('0')处理三, 解题程序四, 总结一, 移掉K位数字给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = “1432219”, k = 3输出: “1219”解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 12原创 2020-11-15 19:44:48 · 490 阅读 · 0 评论 -
面试题 17.21. 直方图的水量
一, 面试题 17.21. 直方图的水量给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图,在这种情况下,可以接 6 个单位的水(蓝色部分表示水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6通过次数5,639提交次数9,120二, 解题思路对上矩阵的每个高度进行扫描计算面积 , 就得到每个层原创 2020-11-14 19:31:34 · 261 阅读 · 0 评论 -
1074. 元素和为目标值的子矩阵数量之哈希函数 + 前缀和
一, 元素和为目标值的子矩阵数量给出矩阵 matrix 和目标值 target,返回元素总和等于目标值的非空子矩阵的数量。子矩阵 x1, y1, x2, y2 是满足 x1 <= x <= x2 且 y1 <= y <= y2 的所有单元 matrix[x][y] 的集合。如果 (x1, y1, x2, y2) 和 (x1’, y1’, x2’, y2’) 两个子矩阵中部分坐标不同(如:x1 != x1’),那么这两个子矩阵也不同。示例 1:输入:matrix = [[0原创 2020-11-12 00:14:18 · 216 阅读 · 0 评论 -
电话号码的字母组合
一, 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。通过次数189,825提交次数342,040排列组合 的方法 怎么计算分布的情况//最关键的步骤// 例子: 输出:原创 2020-11-02 23:10:07 · 583 阅读 · 0 评论 -
N数之和的问题
一, 三个数之和问题三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]一般我们是想到排列组合 列举有多少个组合如果需要再找个上面优化,需要排除一些重复的组合,找个怎么做呢!通原创 2020-11-01 21:38:30 · 375 阅读 · 0 评论