LeetCode每日一题
文章平均质量分 50
爱上布洛格的鸭鸭
这个作者很懒,什么都没留下…
展开
-
LeetCode152. 乘积最大子数组
LeetCode152. 乘积最大子数组给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个 32-位 整数。子数组 是数组的连续子序列。示例 1:输入: nums = [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: nums = [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。提示:1 <=原创 2022-03-03 10:03:26 · 345 阅读 · 0 评论 -
LeetCode每日一题之1005_k次取反后最大化的数组和
1005. K 次取反后最大化的数组和题目链接地址给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。重复这个过程恰好 k 次。可以多次选择同一个下标 i 。以这种方式修改数组后,返回数组 可能的最大和 。示例 1:输入:nums = [4,2,3], k = 1输出:5解释:选择下标 1 ,nums 变为 [4,-2,3] 。示例 2:输入:nums = [3,-1,0,2], k = 3输出原创 2021-12-03 09:57:18 · 275 阅读 · 0 评论 -
LeetCode每日一题之786. 第 K 个最小的素数分数
786. 第 K 个最小的素数分数题目链接地址给你一个按递增顺序排序的数组 arr 和一个整数 k 。数组 arr 由 1 和若干 素数 组成,且其中所有整数互不相同。对于每对满足 0 < i < j < arr.length 的 i 和 j ,可以得到分数 arr[i] / arr[j] 。那么第 k 个最小的分数是多少呢? 以长度为 2 的整数数组返回你的答案, 这里 answer[0] == arr[i] 且 answer[1] == arr[j] 。示例 1:输入:ar原创 2021-11-30 10:51:44 · 143 阅读 · 0 评论 -
LeetCode每日一题之859.亲密字符串
859. 亲密字符串题目链接地址给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。例如,在 "abcd" 中交换下标 0 和下标 2 的元素可以生成 "cbad" 。示例 1:输入:s = "ab", goal = "ba"输出:true解释:你可以交换 s[0]原创 2021-11-23 10:06:22 · 298 阅读 · 0 评论 -
LeetCode每日一题之375. 猜数字大小 II
375. 猜数字大小 II题目链接地址我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字。你来猜我选了哪个数字。如果你猜到正确的数字,就会 赢得游戏 。如果你猜错了,那么我会告诉你,我选的数字比你的 更大或者更小 ,并且你需要继续猜数。每当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。如果你花光了钱,就会 输掉游戏 。给你一个特定的数字 n ,返回能够 确保你获胜 的最小现金数,不管我选择那个数字 。示例 1:输入:n = 10输出:16原创 2021-11-12 19:20:04 · 173 阅读 · 0 评论 -
LeetCode每日一题-495.提莫攻击
LeetCode495. 提莫攻击题目链接地址在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束原创 2021-11-10 09:38:19 · 4848 阅读 · 0 评论 -
LeetCode每日一题之299_猜数字游戏
299. 猜数字游戏你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(称为 “Bulls”, 公牛),有多少位属于数字猜对了但是位置不对(称为 “Cows”, 奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。给你一个秘密数字 secret 和朋友猜测的数字 guess ,请你返回对朋友这次猜测的提示原创 2021-11-08 10:39:59 · 114 阅读 · 0 评论 -
LeetCode每日一题之367.有效的完全平方数
367. 有效的完全平方数题目链接给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false提示:1 <= num <= 2^31 - 1题解:直接法:超时了…//直接法:超时了public boolean isPerfectSquare(int num)原创 2021-11-04 09:45:09 · 93 阅读 · 0 评论 -
LeetCode每日一题之869.重新排序得到2的幂
LeetCode每日一题之869. 重新排序得到 2 的幂题目链接地址给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。示例 1:输入:1输出:true示例 2:输入:10输出:false示例 3:输入:16输出:true示例 4:输入:24输出:false示例 5:输入:46输出:true提示:1 <= N <= 10^9原创 2021-10-28 16:46:23 · 3421 阅读 · 0 评论 -
LeetCode每日一题之496_下一个更大元素I
LeetCode496. 下一个更大元素 Il题目链接地址给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:原创 2021-10-26 16:16:54 · 143 阅读 · 0 评论 -
LeetCode每日一题之240_搜索二维矩阵
LeetCode240. 搜索二维矩阵 II题目链接地址编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true示例 2:输入:matrix原创 2021-10-25 12:01:10 · 140 阅读 · 0 评论 -
LeetCode每日一题之476.数字的补数
476. 数字的补数题目链接给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。示例 1:输入:num = 5输出:2解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。示例 2:输入:num = 1输出:0解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。提示:给定的整数 num 保证在 32 位带符号整数的范围内。num >= 1你可以假定二进制数不包含前导零位。题解:原创 2021-10-18 10:44:54 · 98 阅读 · 0 评论 -
LeetCode每日一题之412_Fizz_Buzz
LeetCode每日一题之412_Fizz_BuzzLeetCode412. Fizz Buzz写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8",原创 2021-10-13 09:50:19 · 119 阅读 · 0 评论 -
LeetCode每日一题之29_两数相除问题
LeetCode29. 两数相除LeetCode29. 两数相除给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 =原创 2021-10-12 09:50:11 · 205 阅读 · 0 评论 -
LeetCode每日一题之LeetCode273_整数转换英文表示
LeetCode273. 整数转换英文表示LeetCode273将非负整数 num 转换为其对应的英文表示。示例 1:输入:num = 123输出:"One Hundred Twenty Three"示例 2:输入:num = 12345输出:"Twelve Thousand Three Hundred Forty Five"示例 3:输入:num = 1234567输出:"One Million Two Hundred Thirty Four Thousand Five Hund原创 2021-10-11 15:07:26 · 406 阅读 · 0 评论 -
LeetCode每日一题之LeetCode352
352. 将数据流变为多个不相交区间LeetCode352给你一个由非负整数 a1, a2, ..., an 组成的数据流输入,请你将到目前为止看到的数字总结为不相交的区间列表。实现 SummaryRanges 类:SummaryRanges() 使用一个空数据流初始化对象。void addNum(int val) 向数据流中加入整数 val 。int[][] getIntervals() 以不相交区间 [starti, endi] 的列表形式返回对数据流中整数的总结。示例:输入:["原创 2021-10-09 17:16:39 · 180 阅读 · 0 评论 -
LeetCode每日一题之187重复的DNA序列
187. 重复的DNA序列187.重复的DNA序列所有 DNA 都由一系列缩写为 'A','C','G' 和 'T' 的核苷酸组成,例如:"ACGAATTCCG"。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助。编写一个函数来找出所有目标子串,目标子串的长度为 10,且在 DNA 字符串 s 中出现次数超过一次。示例 1:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AAAAACCCCC","CCCCCAAAAA"]示例 2原创 2021-10-08 19:57:10 · 117 阅读 · 0 评论 -
LeetCode437_路径总和III
LeetCode每日一题之437. 路径总和 III路径总和 III给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。示例 1:输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释:和等于 8 的路径有 3 条,如图所示。示例 2原创 2021-09-28 11:06:37 · 224 阅读 · 0 评论 -
LeetCode371两整数之和
LeetCode371. 两整数之和给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和。示例 1:输入:a = 1, b = 2输出:3示例 2:输入:a = 2, b = 3输出:5提示:-1000 <= a, b <= 1000代码实现/*a b 进位c 和0 0 0 00 1 0 11 0 0 11 1 1 0那么进位为(a & b) << 1和为 a ^原创 2021-09-26 21:47:01 · 142 阅读 · 0 评论 -
LeetCode583_两个字符串的删除操作
LeetCode583. 两个字符串的删除操作LeetCode通道给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。示例:输入: "sea", "eat"输出: 2解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea"提示:给定单词的长度不超过500。给定单词中的字符只含有小写字母。题解:class Solution { public int minDistance(原创 2021-09-25 21:59:10 · 221 阅读 · 0 评论 -
LeetCode每日一题之扁平化多级双向链表
LeetCode每日一题之 430. 扁平化多级双向链表LeetCode通道多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。示例 1:输入:head = [1,2,3,4,5,6,null,null,null,7,8,9,10,null,null,11,12]输出:[1,2,3,7,原创 2021-09-24 10:57:55 · 101 阅读 · 1 评论