![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 84
晴空๓
和优秀的人,做有挑战的事!一起加油 (ง •̀o•́)ง (ง •̀o•́)ง
展开
-
LeetCode 2923. 找到冠军 I——更好的解法
今天看了一下昨天每日一题的题解,发现了更好的解法只需要O(n)的时间复杂度就可以解出,而不是像我上一篇博客一样需要O(n^2)的时间复杂度才可以解决。具体的思路是这样的,这个本质上就是 打擂台,如果当前的队伍输了那么该队伍就不可能是冠军,所以我们只需要一开始假设 0队 是冠军,然后与 1队 进行 PK。如果 grid[1][0] == 1 说明1队获胜,那么0队就不可能是冠军。再用1队与2队进行PK,赢了就继续与3队PK,输了说明也不是冠军,再用2队与后面的队伍PK,直到与所有的队伍PK完即可得到冠军队伍原创 2024-04-13 11:05:16 · 408 阅读 · 0 评论 -
LeetCode 2923. 找到冠军 I——每日一题
一场比赛中共有 n 支队伍,按从 0 到 n - 1 编号。给你一个下标从 0 开始、大小为 n * n 的二维布尔矩阵 grid 。对于满足 0原创 2024-04-12 23:05:55 · 530 阅读 · 0 评论 -
LeetCode 1702. 修改后的最大二进制字符串——每日一题
给你一个二进制字符串 binary ,它仅有 0 或者 1 组成。你可以使用下面的操作任意次对它进行修改:操作 1 :如果二进制串包含子字符串 "00" ,你可以用 "10" 将其替换。比方说, "00010" -> "10010"操作 2 :如果二进制串包含子字符串 "10" ,你可以用 "01" 将其替换。比方说, "00010" -> "00001"请你返回执行上述操作任意次以后能得到的 最大二进制字符串 。如果二进制字符串 x 对应的十进制数字大于二进制字符串 y 对应的十进制数字,那么原创 2024-04-10 22:31:59 · 949 阅读 · 0 评论 -
LeetCode 2529. 正整数和负整数的最大计数——每日一题
给你一个按 非递减顺序 排列的数组 nums ,返回正整数数目和负整数数目中的最大值。原创 2024-04-09 23:10:25 · 860 阅读 · 0 评论 -
LeetCode 993. 二叉树的堂兄弟节点——每日一题
本题主要考察了二叉树的遍历,可以使用 宽度优先搜索 在遍历的同时使用 map 记录每个节点的值、深度以及其父节点。遍历完成之后直接进行比较即可。原创 2021-05-17 16:46:08 · 307 阅读 · 0 评论 -
LeetCode 1006. 笨阶乘——每日一题
通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。相反,我们设计了一个笨阶乘 clumsy:在整数的递减序列中,我们以一个固定顺序的操作符序列来依次替换原有的乘法操作符:乘法(*),除法(/),加法(+)和减法(-)。例如,clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2 * 1。然而,这些运算仍然使用通常的算术运算顺序:我们在原创 2021-04-01 10:46:41 · 331 阅读 · 0 评论 -
LeetCode 61. 旋转链表——每日一题
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。原创 2021-03-27 10:10:41 · 281 阅读 · 0 评论 -
LeetCode 83. 删除排序链表中的重复元素——每日一题
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次。返回同样按升序排列的结果链表。原创 2021-03-26 12:07:07 · 388 阅读 · 0 评论 -
LeetCode 191. 位1的个数——每日一题
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为 汉明重量)。原创 2021-03-22 16:58:55 · 177 阅读 · 0 评论 -
LeetCode 73. 矩阵置零——每日一题
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。原创 2021-03-21 18:10:21 · 2032 阅读 · 10 评论 -
LeetCode 4. 寻找两个正序数组的中位数
给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。原创 2021-01-01 21:26:35 · 173 阅读 · 2 评论 -
LeetCode 605. 种花问题(简单模拟)——每日一题
假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回 True,不能则返回 False。原创 2021-01-01 18:28:01 · 400 阅读 · 0 评论 -
LeetCode 53. 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。原创 2020-10-24 21:42:51 · 212 阅读 · 2 评论 -
LeetCode 面试题 08.10. 颜色填充(BFS)
编写函数,实现许多图片编辑软件都支持的「颜色填充」功能。待填充的图像用二维数组 image 表示,元素为初始颜色值。初始坐标点的横坐标为 sr 纵坐标为 sc。需要填充的新颜色为 newColor 。 「周围区域」是指颜色相同且在上、下、左、右四个方向上存在相连情况的若干元素。 请用新颜色填充初始坐标点的周围区域,并返回填充后的图像。原创 2020-09-07 22:53:52 · 1191 阅读 · 18 评论 -
LeetCode 733. 图像渲染(DFS、BFS)
有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标(sr, sc)表示图像渲染开始的像素值(行 ,列)和一个新的颜色值newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。最后返回经过上色渲染原创 2020-09-02 09:55:17 · 1918 阅读 · 40 评论 -
LeetCode 200.岛屿数量(DFS、BFS)
给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。原创 2020-09-01 15:37:53 · 1420 阅读 · 21 评论 -
LeetCode 101.对称二叉树(DFS、BFS)
给定一个二叉树,检查它是否是镜像对称的。原创 2020-08-31 14:02:34 · 4647 阅读 · 53 评论 -
LeetCode 104.二叉树的最大深度(DFS、BFS)
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。原创 2020-08-30 19:19:57 · 1650 阅读 · 49 评论 -
LeetCode 35. 搜索插入位置(二分查找)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。原创 2020-08-21 17:03:16 · 2104 阅读 · 38 评论 -
LeetCode 28. 实现 strStr()(KMP、字符串)
实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。原创 2020-08-21 12:12:34 · 1818 阅读 · 32 评论 -
LeetCode 27. 移除元素(双指针)
给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。原创 2020-08-18 18:17:06 · 2422 阅读 · 29 评论 -
LeetCode 21. 合并两个有序链表(链表)
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2020-08-18 12:37:50 · 2345 阅读 · 29 评论 -
LeetCode 20. 有效的括号(栈、字符串)
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。原创 2020-08-17 13:42:10 · 5257 阅读 · 66 评论 -
LeetCode 14.最长公共前缀(字符串)
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。原创 2020-08-16 15:06:15 · 4738 阅读 · 64 评论 -
Leetcode 13.罗马数字转整数(字符串)
给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。原创 2020-08-15 23:00:03 · 610 阅读 · 29 评论 -
LeetCode 9. 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。原创 2020-08-15 16:25:10 · 2569 阅读 · 35 评论 -
LeetCode 7.整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。原创 2020-08-15 16:10:55 · 1592 阅读 · 36 评论 -
LeetCode 415. 字符串相加(字符串、高精度)——每日一题
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。原创 2020-08-03 15:42:59 · 1743 阅读 · 53 评论 -
LeetCode 3.无重复字符的最长子串(滑动窗口、双指针)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。原创 2020-08-01 18:22:30 · 2847 阅读 · 39 评论 -
LeetCode 2.两数相加(单链表、高精度)
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。原创 2020-06-17 20:22:25 · 2206 阅读 · 41 评论 -
LeetCode 1.两数之和(数组、哈希表)
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 ...原创 2020-06-15 13:39:52 · 2406 阅读 · 39 评论