- 博客(26)
- 收藏
- 关注
原创 907. 子数组的最小值之和
经过以上思考,我们只需要找到每个元素 \textit{arr}[i]arr[i] 以该元素为最右且最小的子序列的数目 \textit{left}[i]left[i],以及以该元素为最左且最小的子序列的数目 \textit{right}[i]right[i],则以 \textit{arr}[i]arr[i] 为最小元素的子序列的数目合计为 \textit{left}[i] \times \textit{right[i]}left[i]×right[i]。
2022-10-28 22:00:42 94 1
原创 1822. 数组元素积的符号
遍历整个数组,如果元素为正,那么 \textit{sign}sign 不变,否则令 \textit{sign} = -\textit{sign}sign=−sign,最后返回 \textit{sign}sign。链接:https://leetcode.cn/problems/sign-of-the-product-of-an-array/solution/shu-zu-yuan-su-ji-de-fu-hao-by-leetcode-f4uuj/商业转载请联系作者获得授权,非商业转载请注明出处。
2022-10-27 21:06:22 177
原创 862. 和至少为 K 的最短子数组
因此,每次访问到某个前缀和 \textit{preSumArr}[j]preSumArr[j] 时,可以用它尝试减去集合 qq 中所有已经访问过的前缀和。当某个 qq 中的前缀和 \textit{preSumArr}[i]preSumArr[i],第一次出现 \textit{preSumArr}[j] - \textit{preSumArr}[i] \geq kpreSumArr[j]−preSumArr[i]≥k 时,这个下标 ii 就找到了以它为起点的最短子数组的长度 j-ij−i。
2022-10-26 21:09:19 96
原创 力扣分割数组
根据题目描述,对于数组left,它的第一个成员就是nums[0],即:下图中的32。然后我们需要遍历nums数组中的每个数字,当发现遍历的这个数字nums[i]大于32的时候,则表示这个数字暂时可能不属于数组left。那么当发现遍历的这个数字nums[i]小于或等于32的时候,则可以判断出这个数字一定是属于数组left的。
2022-10-24 20:30:27 93
原创 1768. 交替合并字符串
方法一:双指针思路与算法我们直接按照题目的要求模拟即可。我们使用两个指针 ii 和 jj,初始时分别指向两个字符串的首个位置。随后的每次循环中,依次进行如下的两步操作:你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Comma
2022-10-23 17:54:57 67
原创 391. 完美矩形
给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi, yi) ,右上顶点是 (ai, bi) 。如果所有矩形一起精确覆盖了某个矩形区域,则返回 true ;否则,返回 false 。...
2021-11-16 21:55:53 237
原创 319. 灯泡开关
初始时有 n 个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭一个。第三轮,你每三个灯泡就切换一个灯泡的开关(即,打开变关闭,关闭变打开)。第 i 轮,你每 i 个灯泡就切换一个灯泡的开关。直到第 n 轮,你只需要切换最后一个灯泡的开关。找出并返回 n 轮后有多少个亮着的灯泡。class Solution {public int bulbSwitch(int n) {return (int) Math.sqrt(n + 0.5);}}...
2021-11-15 10:49:52 361
原创 677. 键值映射
实现一个 MapSum 类,支持两个方法,insert 和 sum:MapSum() 初始化 MapSum 对象void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。...
2021-11-14 21:19:36 203
原创 520. 检测大写字母
方法:根据题目要求实现思路和算法根据题目要求,若单词的大写用法正确,则需要满足:若第 11 个字母为大写,则其他字母必须均为大写或均为小写,即其他字母必须与第 22 个字母的大小写相同;若第 11 个字母为小写,则其他字母必须均为小写。根据以上规则,可以整理得到以下更简单的判断规则:无论第 11 个字母是否大写,其他字母必须与第 22 个字母的大小写相同;若第 11 个字母为小写,则需额外判断第 22 个字母是否为小写。...
2021-11-13 22:10:17 210
原创 375. 猜数字大小 II
我们正在玩一个猜数游戏,游戏规则如下:我从 1 到 n 之间选择一个数字。你来猜我选了哪个数字。如果你猜到正确的数字,就会 赢得游戏 。如果你猜错了,那么我会告诉你,我选的数字比你的 更大或者更小 ,并且你需要继续猜数。每当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。如果你花光了钱,就会 输掉游戏 。给你一个特定的数字 n ,返回能够 确保你获胜 的最小现金数,不管我选择那个数字 。...
2021-11-12 21:38:35 1826
原创 629. K个逆序对数组
给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数。逆序对的定义如下:对于数组的第i个和第 j个元素,如果满i < j且 a[i] > a[j],则其为一个逆序对;否则不是。由于答案可能很大,只需要返回 答案 mod 109 + 7 的值。...
2021-11-11 21:36:28 198
原创 495. 提莫攻击
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。给你一个 非递减 的整数数组 timeSeri
2021-11-10 22:25:34 69
原创 488. 祖玛游戏
你正在参与祖玛游戏的一个变种。在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 ‘R’、黄色 ‘Y’、蓝色 ‘B’、绿色 ‘G’ 或白色 ‘W’ 。你的手中也有一些彩球。你的目标是 清空 桌面上所有的球。每一回合:从你手上的彩球中选出 任意一颗 ,然后将其插入桌面上那一排球中:两球之间或这一排球的任一端。接着,如果有出现 三个或者三个以上 且 颜色相同 的球相连的话,就把它们移除掉。如果这种移除操作同样导致出现三个或者三个以上且颜色相同的球相连,则可以继续移除这些球,直到不再满
2021-11-09 22:56:09 73
原创 299. 猜数字游戏
你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示:猜测数字中有多少位属于数字和确切位置都猜对了(称为 “Bulls”, 公牛),有多少位属于数字猜对了但是位置不对(称为 “Cows”, 奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。给你一个秘密数字 secret 和朋友猜测的数字 guess ,请你返回对朋友这次猜测的提示。提示的格式为 “xAy
2021-11-08 21:55:22 2644
原创 598. 范围求和 II
给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。...
2021-11-07 22:36:22 59
原创 268. 丢失的数字 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。
方法:排序将数组排序之后,即可根据数组中每个下标处的元素是否和下标相等,得到丢失的数字。由于数组的长度是 nn,因此下标范围是 [0, n-1][0,n−1]。假设缺失的数字是 kk,分别考虑以下两种情况:当 0 \le k < n0≤k<n 时,对任意 0 \le i < k0≤i<k,都有 \textit{nums}[i]=inums[i]=i,由于 kk 缺失,因此 \textit{nums}[k]=k+1nums[k]=k+1,kk 是第一个满足下标和元素不相等的下标;
2021-11-06 22:20:19 954
原创 1218. 最长定差子序列
给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference 。子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。方法:动态规划下文为方便叙述将 \textit{difference}difference 简写成 dd。我们从左往右遍历 \textit{arr}arr,并计算出以 \textit{arr}[i]arr[i] 为结尾的最长的等差子序列
2021-11-05 21:36:34 66
原创 367. 有效的完全平方数 给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
思路和算法如果 \textit{num}num 为完全平方数,那么一定存在正整数 xx 满足 x \times x = \textit{num}x×x=num。于是我们可以从 11 开始,从小到大遍历所有正整数,寻找是否存在满足 x \times x = \textit{num}x×x=num 的正整数 xx。在遍历中,如果出现正整数 xx 使 x \times x > \textit{num}x×x>num,那么更大的正整数也不可能满足 x \times x = \textit{num}x
2021-11-04 16:35:28 362
原创 237. 删除链表中的节点
方法一:和下一个节点交换删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 \textit{next}next 指针,使其指向待删除节点的下一个节点,即可完成删除操作。这道题中,传入的参数 \textit{node}node 为要被删除的节点,无法定位到该节点的上一个节点。注意到要被删除的节点不是链表的末尾节点,因此 \textit{node}.\textit{next}node.next 不为空,可以通过对 \textit{node}node 和 \textit{node}.
2021-11-02 17:14:51 69
原创 575. 分糖果
Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可能吃到最多不同种类的糖。给你一个长度为 n 的整数数组 candyType ,返回: Alice 在仅吃掉 n / 2 枚糖的情况下,可以吃到糖的最多种类数。来源:力扣(LeetCode)链接:https://l
2021-11-01 22:38:06 103
原创 500. 键盘行
给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 “qwertyuiop” 组成。第二行由字符 “asdfghjkl” 组成。第三行由字符 “zxcvbnm” 组成。...
2021-10-31 19:47:15 56
原创 260. 只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?示例 1:输入:nums = [1,2,1,3,2,5]输出:[3,5]解释:[5, 3] 也是有效的答案。解:需要一点数学思维:首先要知道一个数和它本身 XOR的结果是 0;一个数和0 XOR 的结果是它本身。所以如果把整个数组的所有元素都XOR在一起,得到的结果= A ^ B
2021-10-30 21:44:03 75
原创 2021-10-29
335.路径交叉给你一个整数数组 distance 。从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南移动 distance[2] 米,向东移动 distance[3] 米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。判断你所经过的路径是否相交。如果相交,返回 true ;否则,返回 false 。示例 1:输入:distance = [2,1,1,2]输出:true示例 2:输入:distance
2021-10-29 22:31:47 48
原创 重新排序得到 2 的幂
给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。
2021-10-28 22:42:43 62
原创 2021-10-27
这里写自定义目录标题在这里插入图片描述新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入301. 删除无效的括号给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。返回所有可能的结果
2021-10-27 22:59:32 51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人