LC 520. 检测大写字母 题目描述这是 LeetCode 上的 520. 检测大写字母 ,难度为 简单。 我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如 “USA” 。 单词中所有字母都不是大写,比如 “leetcode” 。 如果单词不只含有一个字母,只有首字母大写, 比如 “Google” 。 给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。 示例 2021-11-12 模拟
LC 375. 猜数字大小 II 题目描述这是 LeetCode 上的 375. 猜数字大小 II ,难度为 中等。 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。 你来猜我选了哪个数字。 如果你猜到正确的数字,就会 赢得游戏 。 如果你猜错了,那么我会告诉你,我选的数字比你的 更大或者更小 ,并且你需要继续猜数。 每当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。如果你花光了钱, 2021-11-11 博弈论 记忆化搜索 区间 DP
LC 629. K个逆序对数组 题目描述这是 LeetCode 上的 629. K个逆序对数组 ,难度为 困难。 给出两个整数 n 和 k,找出所有包含从 1 到 n 的数字,且恰好拥有 k 个逆序对的不同的数组的个数。 逆序对的定义如下:对于数组的第 i 个和第 j 个元素,如果满 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。 由于答案可能很大,只需要返回 答案 mod $10^9 + 7$ 2021-11-10 序列 DP 前缀和
LC 495. 提莫攻击 题目描述这是 LeetCode 上的 495. 提莫攻击 ,难度为 简单。 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1) 2021-11-09 模拟
LC 488. 祖玛游戏 题目描述这是 LeetCode 上的 488. 祖玛游戏 ,难度为 困难。 你正在参与祖玛游戏的一个变种。 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'、黄色 'Y'、蓝色 'B'、绿色 'G' 或白色 'W' 。你的手中也有一些彩球。 你的目标是 清空 桌面上所有的球。每一回合: 从 2021-11-09 DFS 启发式搜索 AStar 算法 搜索
LC 299. 猜数字游戏 题目描述这是 LeetCode 上的 299. 猜数字游戏 ,难度为 中等。 你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提示: 猜测数字中有多少位属于数字和确切位置都猜对了(称为 "Bulls", 公牛), 有多少位属于数字猜对了但是位置不对(称为 & 2021-11-07 模拟
LC 598. 范围求和 II 题目描述这是 LeetCode 上的 598. 范围求和 II ,难度为 简单。 给定一个初始元素全部为 $0$,大小为 $m*n$ 的矩阵 $M$ 以及在 $M$ 上的一系列更新操作。 操作用二维数组表示,其中的每个操作用一个含有两个正整数 $a$ 和 $b$ 的数组表示,含义是将所有符合 $0 <= i < a$ 以及 $0 <= j < b$ 的元素 $M[i][j] 2021-11-06 模拟
LC 268. 丢失的数字 题目描述这是 LeetCode 上的 268. 丢失的数字 ,难度为 简单。 给定一个包含 $[0, n]$ 中 $n$ 个数的数组 $nums$ ,找出 $[0, n]$ 这个范围内没有出现在数组中的那个数。 示例 1:12345输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中 2021-11-05 哈希表 模拟 数学 位运算
LC 1218. 最长定差子序列 题目描述这是 LeetCode 上的 1218. 最长定差子序列 ,难度为 中等。 给你一个整数数组 arr 和一个整数 difference,请你找出并返回 arr 中最长等差子序列的长度,该子序列中相邻元素之间的差等于 difference 。 子序列 是指在不改变其余元素顺序的情况下,通过删除一些元素或不删除任何元素而从 arr 派生出来的序列。 示例 1:12345输入:arr = [1, 2021-11-04 序列 DP 哈希表 贪心 状态机 DP
LC 2059. 转化数字的最小运算数 题目描述这是 LeetCode 上的 2059. 转化数字的最小运算数 ,难度为 中等。 给你一个下标从 0 开始的整数数组 nums,该数组由 互不相同 的数字组成。 另给你两个整数 start 和 goal 。 整数 x 的值最开始设为 start ,你打算执行一些运算使 x 转化为 goal 。 你可以对数字 x 重复执行下述运算: 如果 0 <= x <= 1000,那么,对于 2021-11-04 图论 BFS 双向 BFS
LC 367. 有效的完全平方数 题目描述这是 LeetCode 上的 367. 有效的完全平方数 ,难度为 简单。 给定一个 正整数 $num$ ,编写一个函数,如果 $num$ 是一个完全平方数,则返回 $true$ ,否则返回 $false$ 。 进阶:不要使用任何内置的库函数,如 sqrt。 示例 1:123输入:num = 16输出:true示例 2:123输入:num = 14输出:false 提示: $1 < 2021-11-03 二分 数学
LC 407. 接雨水 II 题目描述这是 LeetCode 上的 407. 接雨水 II ,难度为 困难。 给你一个 $m x n$ 的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。 示例 1: 12345输入: heightMap = [[1,4,3,1,3,2],[3,2,1,3,2,4],[2,3,3,2,3,1]]输出: 4解释: 下雨后,雨水将会被上图蓝色的方块中。 2021-11-02 优先队列(堆) 最短路
LC 237. 删除链表中的节点 题目描述这是 LeetCode 上的 237. 删除链表中的节点 ,难度为 简单。 请编写一个函数,用于删除单链表中某个特定节点 。 在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问要被删除的节点。 题目数据保证需要删除的节点 不是末尾节点 。 示例 1:12345输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:指定链表中值为 5 的第二个 2021-11-01 模拟 脑筋急转弯 链表
LC 575. 分糖果 题目描述这是 LeetCode 上的 575. 分糖果 ,难度为 简单。 给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。 返回妹妹可以获得的最大糖果的种类数。 示例 1:123456输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹 2021-10-31 贪心
LC 500. 键盘行 题目描述这是 LeetCode 上的 500. 键盘行 ,难度为 简单。 给你一个字符串数组 words,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 美式键盘 中: 第一行由字符 "qwertyuiop" 组成。 第二行由字符 "asdfghjkl" 组成。 第三行由字符 "zxcvbnm" 组成。 示 2021-10-30 哈希表 模拟