![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 50
论眉毛你是比不过我的
一只成长中的小白
展开
-
【算法修炼道路】有序矩阵中第 K 小的元素
378. 有序矩阵中第 K 小的元素 给你一个n x n矩阵matrix,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个不同的元素。 示例 1: 输入:matrix = [[1,5,9],[10,11,13],[12,13,15]], k = 8 输出:13 解释:矩阵中的元素为 [1,5,9,10,11,12,13,13,15],第 8 小元素是 13 示例 2: 输入:matrix = [[-5]]...原创 2021-02-27 01:04:09 · 190 阅读 · 0 评论 -
【算法修炼道路】最小k个数(topk)
设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例: 输入: arr = [1,3,5,7,2,4,6,8], k = 4 输出: [1,2,3,4] 提示: 0 <= len(arr) <= 100000 0 <= k <= min(100000, len(arr)) 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/smallest-k-lcci 著作权归领扣网络所有。商业转载请联系官方授权,非原创 2021-02-25 23:26:37 · 186 阅读 · 0 评论 -
【算法修炼道路】并查集(3)-
200. 岛屿数量 给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"] ] 输出:1 示例 2...原创 2021-02-24 01:41:52 · 178 阅读 · 0 评论 -
【算法修炼道路】并查集(2)-冗余连接
684. 冗余连接 在本问题中, 树指的是一个连通且无环的无向图。 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v],满足u < v,表示连接顶点u和v的无向图的边。 返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边[u, v]应满...原创 2021-02-24 00:14:33 · 141 阅读 · 0 评论 -
【算法修炼道路】并查集(1)- 省份数量
有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。 给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。 返回矩阵中 省份 的数量。 示例 1: 输入:isC.原创 2021-02-23 23:40:57 · 107 阅读 · 0 评论 -
【算法修炼道路】链表的中间节点
给定一个头结点为 head的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.nex..原创 2021-02-21 15:04:02 · 152 阅读 · 0 评论 -
【算法修炼道路】任务调度器
621. 任务调度器 给你一个用字符数组tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。 然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。 你需要计算完成所有任务所需要的 最短时间 。 示例 1: 输入:tasks = ["A","A".原创 2021-02-03 01:37:28 · 149 阅读 · 0 评论 -
【算法修炼道路】连续整数求和
829. 连续整数求和 给定一个正整数 N,试求有多少组连续正整数满足所有数字之和为 N? 示例 1: 输入: 5 输出: 2 解释: 5 = 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 5。 示例 2: 输入: 9 输出: 3 解释: 9 = 9 = 4 + 5 = 2 + 3 + 4 示例 3: 输入: 15 输出: 4 解释: 15 = 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5 说明:1 <= N <= 10 .原创 2021-02-01 00:24:50 · 1146 阅读 · 0 评论 -
【算法修炼道路】最大矩形
85. 最大矩形 给定一个仅包含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 示例 3: 输入:matrix = ...原创 2020-12-29 00:58:09 · 342 阅读 · 0 评论 -
【算法修炼道路】水域大小
你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。 示例: 输入: [ [0,2,1,0], [0,1,0,1], [1,1,0,1], [0,1,0,1] ] 输出: [1,2,4] 提示: 0 < len(land) <= 1000 0 < len(land[i]) <=...原创 2020-12-23 00:32:26 · 211 阅读 · 0 评论 -
【算法修炼道路】使用最小花费爬楼梯
数组的每个索引作为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。 示例1: 输入: cost = [10, 15, 20] 输出: 15 解释: 最低花费是从cost[1]开始,然后走两步即可到阶梯顶,一共花费15。 示例 2: 输入: cost = [1, 100, ...原创 2020-12-21 01:19:54 · 186 阅读 · 0 评论 -
【算法修炼道路】翻转游戏
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/flip-game-ii 题目: 你和朋友玩一个叫做「翻转游戏」的游戏,游戏规则:给定一个只有+和-的字符串。你和朋友轮流将连续 的两个"++"反转成"--"。 当一方无法进行有效的翻转时便意味着游戏结束,则另一方获胜。 请你写出一个函数来判定起始玩家是否存在必胜的方案。 示例: 输入: s = "++++" 输出: true 解析: 起始玩家可将中间的 "++" 翻转变为 "...原创 2020-11-20 00:59:47 · 259 阅读 · 0 评论 -
【算法修炼道路】石子游戏
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/stone-game 题目:甲、乙两人用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子piles[i]。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 甲和乙轮流进行,甲先开始。 每回合,玩家甲从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。 假设甲、乙二人都发挥出最佳水平,当甲赢得比赛时返回true...原创 2020-11-15 13:01:51 · 171 阅读 · 0 评论 -
LeetCode 剑指 Offer 10- II. 跳台阶问题
(原题来自LeetCode剑指Offer,因为是付费内容,所以此处对原题进行一些修改) 这道题比较简单。 题目: 小明要爬楼梯,但是由于小明腿短,每次顶多只能跨2层,当然他也可以选择只跨一层。 提问:当有n阶台阶的时候,小明有多少种走完台阶的方法? --------------------------------------------------------------------------------- 输入:n=3,输出:3 输入:n=5,输出:8 -----------------原创 2020-07-24 01:09:02 · 195 阅读 · 0 评论 -
LeetCode 刷题记录帖(322,零钱兑换)
题目: 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。 链接如下:https://leetcode-cn.com/problems/coin-change/ 示例1: 输入:coins=[1, 2, 5], amount = 11 输出:3 解释: 11 = 5 + 1 + 1 示例 2: 输入:coins=2, amount = 3 输入:-1 思路1: 首先排除贪..原创 2020-07-23 01:54:10 · 144 阅读 · 0 评论