- 博客(21)
- 收藏
- 关注
原创 LeedCode-391.完美矩形
给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi, yi) ,右上顶点是 (ai, bi) 。 如果所有矩形一起精确覆盖了某个矩形区域,则返回 true ;否则,返回 false 。 示例 1: 输入:rectangles = [[1,1,3,3],[3,1,4,2],[3,2,4,4],[1,3,2,4],[2,3,3,4]] 输出:true 解释:5 个矩形一起可以精确地覆盖一个矩形
2021-11-16 09:29:56
610
原创 LeetCode-319.灯泡开关
初始时有n 个灯泡处于关闭状态。第一轮,你将会打开所有灯泡。接下来的第二轮,你将会每两个灯泡关闭一个。 第三轮,你每三个灯泡就切换一个灯泡的开关(即,打开变关闭,关闭变打开)。第 i 轮,你每 i 个灯泡就切换一个灯泡的开关。直到第 n 轮,你只需要切换最后一个灯泡的开关。 找出并返回 n轮后有多少个亮着的灯泡。 示例 1: 输入:n = 3 输出:1 解释: 初始时, 灯泡状态 [关闭, 关闭, 关闭]. 第一轮后, 灯泡状态 [开启, 开启, 开启]. 第二轮后, 灯泡状态 [开启, 关闭...
2021-11-15 22:40:22
3843
原创 LeetCode-677.键值映射
实现一个 MapSum 类,支持两个方法,insert和sum: MapSum() 初始化 MapSum 对象 void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。 int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。 示例: 输入: ["MapSum", "insert", "sum"...
2021-11-14 20:59:54
3826
原创 LeetCode-520.检测大写字母
我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如 "USA" 。 单词中所有字母都不是大写,比如 "leetcode" 。 如果单词不只含有一个字母,只有首字母大写,比如"Google" 。 给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。 示例 1: 输入:word = "USA" 输出:true 解题思路: 无论第1个字母是否大写,其他字母必须与第2个字母的大小写相同; 若第1个字母为小写,则需额外判断第2个字母...
2021-11-13 22:20:14
4346
原创 LeetCode-375.猜数字大小Ⅱ
我们正在玩一个猜数游戏,游戏规则如下: 我从1到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你猜错了,那么我会告诉你,我选的数字比你的 更大或者更小 ,并且你需要继续猜数。 每当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。如果你花光了钱,就会 输掉游戏 。 给你一个特定的数字 n ,返回能够 确保你获胜 的最小现金数,不管我选择那个数字 。 示例 1: 输入:n = 10 输出:16 解释:制胜策略如下: - 数字范围是 [1,..
2021-11-12 16:49:14
93
原创 LeetCode-629.K个逆序对数组
给出两个整数n和k,找出所有包含从1到n的数字,且恰好拥有k个逆序对的不同的数组的个数。 逆序对的定义如下:对于数组的第i个和第j个元素,如果满i<j且a[i]>a[j],则其为一个逆序对;否则不是。 由于答案可能很大,只需要返回 答案 mod 109+ 7 的值。 示例 1: 输入: n = 3, k = 0 输出: 1 解释: 只有数组 [1,2,3] 包含了从1到3的整数并且正好拥有 0 个逆序对。 解题思路: ...
2021-11-11 20:54:52
880
原创 LeetCode-495.提莫攻击
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。 给你一个 非递减 的整数数组 timeS.
2021-11-10 18:04:08
92
原创 LeetCode-488.祖玛游戏
你正在参与祖玛游戏的一个变种。 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'、黄色 'Y'、蓝色 'B'、绿色 'G' 或白色 'W' 。你的手中也有一些彩球。 你的目标是 清空 桌面上所有的球。每一回合: 从你手上的彩球中选出 任意一颗 ,然后将其插入桌面上那一排球中:两球之间或这一排球的任一端。 接着,如果有出现 三个或者三个以上 且 颜色相同 的球相连的话,就把它们移除掉。 如果这种移除操作同样导致出现三个或者三个以上且颜色相同的球相连,则可以继续移除这些球,直到
2021-11-09 17:26:23
205
原创 LeetCode-299.猜数字
你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示: 猜测数字中有多少位属于数字和确切位置都猜对了(称为 "Bulls", 公牛), 有多少位属于数字猜对了但是位置不对(称为 "Cows", 奶牛)。也就是说,这次猜测中有多少位非公牛数字可以通过重新排列转换成公牛数字。 给你一个秘密数字secret 和朋友猜测的数字guess ,请你返回对朋友这次猜测的提示。 提示的格式为 "..
2021-11-08 10:17:14
659
原创 LeedCode-598.范围求和 II
给定一个初始元素全部为0,大小为 m*n 的矩阵M以及在M上的一系列更新操作。 操作用二维数组表示,其中的每个操作用一个含有两个正整数a 和 b 的数组表示,含义是将所有符合0 <= i < a 以及 0 <= j < b 的元素M[i][j]的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。 示例 : 输入: m = 3, n = 3 operations = [[2,2],[3,3]] 输出: 4 解释: 初始状态, M...
2021-11-07 16:58:03
86
原创 LeetCode-268.丢失的数字
给定一个包含 [0, n]中n个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 示例 : 输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。 解题思路:求出nums的长度为n,然后生成一个[0,n]的列表为list2,求出在nums列表而不在list2列表,然后return ...
2021-11-06 22:12:29
179
原创 LeetCode-1218.最长定差子序列
给你一个整数数组arr和一个整数difference,请你找出并返回 arr中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference 。 子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。 示例 : 输入:arr = [1,5,7,8,5,3,4,2,1], difference = -2 输出:4 解释:最长的等差子序列是 [7,5,3,1]。 解题思路: 我们从左往右遍历 数组arr,并计算出以 arr[i] 为...
2021-11-05 19:37:31
99
原创 Leetcode-367.有效的完全平方数
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。 进阶:不要 使用任何内置的库函数,如sqrt 。 示例 1: 输入:num = 16 输出:true 示例 2: 输入:num = 14 输出:false 解题思路: 如果 num为完全平方数,那么一定存在正整数x的平方和num相等。于是从1开始遍历,如果相等就return true ...
2021-11-04 20:48:37
206
原创 LeetCode-407.接雨水 II
给你一个m x n的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水 示例 : 输入: heightMap = [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]] 输出: 4 解释: 下雨后,雨水将会被上图蓝色的方块中。总的接雨水量为1+2+1=4。 解题思路: 我们假设方块的索引为 (i,j)(i,j),方块的高度为 \textit{heightMap}[i][j]heightMap[i][j],方块接水后的...
2021-11-03 21:21:15
98
原创 LeetCode-237删除列表节点
请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:指定链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9 解题思路: 用后一个的值覆盖前一个的值 node->val=node->next->val; no...
2021-11-02 16:19:33
113
原创 LeetCode-575.分糖果
给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。 示例 输入: candies = [1,1,2,2,3,3] 输出: 3 解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。 解题思路: 1.对列表去重,得到去重之后的长度为种类数,记为a,求数组的长度除以二,记为b 2.如果a&...
2021-11-01 10:07:38
120
原创 LeetCode-500.键盘行
给你一个字符串数组words,只返回可以使用在美式键盘同一行的字母打印出来的单词。 示例 1: 输入:words = ["Hello","Alaska","Dad","Peace"] 输出:["Alaska","Dad"] 示例 2: 输入:words = ["omk"] 输出:[] 解题思路: list1=['q','w','e','r','t','y','u','i','o','p'] list2=['a','s','d','f','g','h','j','k','l'] ...
2021-10-31 19:19:35
114
原创 LeetCode-260.只出现一次的数字
给定一个整数数组nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按任意顺序返回答案。 进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现? 示例 : 输入:nums = [1,2,1,3,2,5] 输出:[3,5] 解释:[5, 3] 也是有效的答案。 解题思路: 1.统计出数组中每个元素出现的次数,把元素与次数对应的放到字典里面 2.输出字典里面value值为1的key ...
2021-10-30 21:04:27
85
原创 Leetcode-335.路径交叉
给你一个整数数组distance。从X-Y平面上的点(0,0)开始,先向北移动distance[0]米,然后向西移动distance[1]米,向南移动distance[2]米,向东移动distance[3]米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。判断你所经过的路径是否相交。如果相交,返回true;否则,返回false。 示例 输入:distance = [2,1,1,2] 输出:true 解题思路: 找出相交的情况,分析在什么条件...
2021-10-29 11:24:11
456
原创 LeetCode-869. 重新排序得到 2 的幂
给定正整数 N,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。 如果我们可以通过上述方式得到2 的幂,返回 true;否则,返回 false。 示例 1: 输入:1 输出:true 示例 2: 输入:10 输出:false 示例 3: 输入:16 输出:true 解题思路: 1.将数字重排 2.判断是不是2的幂 ...
2021-10-28 18:10:43
83
原创 LeetCode-301. 删除无效的括号
题目描述:给你一个由若干括号和字母组成的字符串s,删除最小数量的无效括号,使得输入的字符串有效。返回所有可能的结果。答案可以按任意顺序返回。 示例 1: 输入:s = "()())()" 输出:["(())()","()()()"] 示例 2: 输入:s = "(a)())()" 输出:["(a())()","(a)()()"] 示例 3: 输入:s = ")(" 输出:[""] 解题思路:1.满足字符串有效的情况就是,左括号等于右括号,那么我们需要删除的就是多出来的左括号...
2021-10-27 18:12:42
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人