摘要: 统计圆内格点数目 枚举坐标点,再枚举圆的数量,时间复杂度200200200 8000000,但要注意C++ auto有拷贝耗时,用auto& 可以 class Solution { public: int countLatticePoints(vector<vector<int>>& circles 阅读全文
posted @ 2022-04-25 15:21 _西瓜不甜 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 状态压缩 class Solution { public: vector<int> maximumBobPoints(int numArrows, vector<int>& aliceArrows) { int msk = 0; int maxScore = 0; // i: 遍历2^12种结果 f 阅读全文
posted @ 2022-03-25 10:59 _西瓜不甜 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。 示例 1: 输入:s = "aaabb", k = 3 输出:3 解释:最长子串为 "aaa" ,其中 'a' 重复了 3 次。 来源:力扣(LeetCode) 链 阅读全文
posted @ 2022-02-03 21:36 _西瓜不甜 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 给你一个整数数组 arr ,你一开始在数组的第一个元素处(下标为 0)。 每一步,你可以从下标 i 跳到下标: i + 1 满足:i + 1 < arr.length i - 1 满足:i - 1 >= 0 j 满足:arr[i] == arr[j] 且 i != j 请你返回到达数组最后一个元素的 阅读全文
posted @ 2022-01-31 15:09 _西瓜不甜 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点 被选中的概率一样 。 实现 Solution 类: Solution(ListNode head) 使用整数数组初始化对象。 int getRandom() 从链表中随机选择一个节点并返回该节点的值。链表中所有节点被选中的概率相等 阅读全文
posted @ 2022-01-16 11:04 _西瓜不甜 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 399. 除法求值 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些 阅读全文
posted @ 2022-01-01 14:45 _西瓜不甜 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 给你一个下标从 0 开始、由 n 个整数组成的数组 arr 。 arr 中两个元素的 间隔 定义为它们下标之间的 绝对差 。更正式地,arr[i] 和 arr[j] 之间的间隔是 |i - j| 。 返回一个长度为 n 的数组 intervals ,其中 intervals[i] 是 arr[i] 阅读全文
posted @ 2021-12-26 22:25 _西瓜不甜 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 给定一个二维网格 grid。 "." 代表一个空房间, "#" 代表一堵墙, "@" 是起点,("a", "b", ...)代表钥匙,("A", "B", ...)代表锁。 我们从起点开始出发,一次移动是指向四个基本方向之一行走一个单位空间。我们不能在网格外面行走,也无法穿过一堵墙。如果途经一个钥匙 阅读全文
posted @ 2021-12-24 09:23 _西瓜不甜 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 给你一个字符串 s,找到 s 中最长的回文子串。 class Solution { public: string longestPalindrome(string s) { int n = s.size(); if (n < 2) { return s; } int maxlen = 1; stri 阅读全文
posted @ 2021-12-21 10:05 _西瓜不甜 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。 在每一步操作中,你可以选择任意 m (1 ⇐ m ⇐ n) 台洗衣机,与此同时将每台洗衣机的一件衣服送到相邻的一台洗衣机。 给定一个整数数组 machines 代表从左至右每台洗衣机中的衣物数量,请给出 阅读全文
posted @ 2021-09-29 09:11 _西瓜不甜 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 来源:力扣(LeetCode) 链接:https://lee 阅读全文
posted @ 2021-09-28 09:15 _西瓜不甜 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 给你一个 m x n 的矩阵 board ,它代表一个填字游戏 当前 的状态。填字游戏格子中包含小写英文字母(已填入的单词),表示 空 格的 ' ' 和表示 障碍 格子的 '#' 。 如果满足以下条件,那么我们可以 水平 (从左到右 或者 从右到左)或 竖直 (从上到下 或者 从下到上)填入一个单词 阅读全文
posted @ 2021-09-27 14:38 _西瓜不甜 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。 每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。 这 k 个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面 阅读全文
posted @ 2021-09-22 09:18 _西瓜不甜 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 )。 任何右括号 ) 必须有相应的左括号 ( 。 左括号 ( 必须在对应的右括号之前 )。 * 可以被视为单个右括号 ) ,或单个左括号 ( , 阅读全文
posted @ 2021-09-13 09:04 _西瓜不甜 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。 不要使用系统的 Math.random() 方法。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/impl 阅读全文
posted @ 2021-09-06 09:18 _西瓜不甜 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 给你两个版本号 version1 和 version2 ,请你比较它们。 版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 阅读全文
posted @ 2021-09-01 09:13 _西瓜不甜 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 在有向图中,以某个节点为起始节点,从该点出发,每一步沿着图中的一条有向边行走。如果到达的节点是终点(即它没有连出的有向边),则停止。 对于一个起始节点,如果从该节点出发,无论每一步选择沿哪条有向边行走,最后必然在有限步内到达终点,则将该起始节点称作是 安全 的。 返回一个由图中所有安全的起始节点组成 阅读全文
posted @ 2021-08-05 09:42 _西瓜不甜 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。 返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/all-n 阅读全文
posted @ 2021-07-28 09:22 _西瓜不甜 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。 更正式地说,root.val = min(root.left.val, root.right.val) 总成立。 给出这样的一个二叉树,你 阅读全文
posted @ 2021-07-27 14:24 _西瓜不甜 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。 如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖,那么请你返回  阅读全文
posted @ 2021-07-23 09:16 _西瓜不甜 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中 阅读全文
posted @ 2021-07-22 09:11 _西瓜不甜 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 给你一个 m x n 的整数矩阵 points (下标从 0 开始)。一开始你的得分为 0 ,你想最大化从矩阵中得到的分数。 你的得分方式为:每一行 中选取一个格子,选中坐标为 (r, c) 的格子会给你的总得分 增加 points[r][c] 。 然而,相邻行之间被选中的格子如果隔得太远,你会失去 阅读全文
posted @ 2021-07-19 15:14 _西瓜不甜 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 元素的 频数 是该元素在一个数组中出现的次数。 给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。 执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。 示例 1: 输入:nums = [1,2,4], k = 阅读全文
posted @ 2021-07-19 14:17 _西瓜不甜 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 给你两个正整数数组 nums1 和 nums2 ,数组的长度都是 n 。 数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|(0 ⇐ i < n)的 总和(下标从 0 开始)。 你可以选用 nums1 中的 任意一个 元素来替换 nums1 中的 阅读全文
posted @ 2021-07-14 09:48 _西瓜不甜 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。 每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示: l 阅读全文
posted @ 2021-07-13 09:30 _西瓜不甜 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 给你一个二元数组 nums ,和一个整数 goal ,请你统计并返回有多少个和为 goal 的 非空 子数组。 子数组 是数组的一段连续部分。 示例 1: 输入:nums = [1,0,1,0,1], goal = 2 输出:4 解释: 如下面黑体所示,有 4 个满足题目要求的子数组: [1,0,1 阅读全文
posted @ 2021-07-08 09:30 _西瓜不甜 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 一个数组 a 的 差绝对值的最小值 定义为:0 ⇐ i < j < a.length 且 a[i] != a[j] 的 |a[i] - a[j]| 的 最小值。如果 a 中所有元素都 相同 ,那么差绝对值的最小值为 -1 。 比方说,数组 [5,2,3,7,2] 差绝对值的最小值是 |2 - 3| 阅读全文
posted @ 2021-06-30 16:01 _西瓜不甜 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。 提示:输入输出格式与 LeetCode 目前使用的方式一致,详情请 阅读全文
posted @ 2021-06-30 14:52 _西瓜不甜 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 给你一个数组 routes ,表示一系列公交线路,其中每个 routes[i] 表示一条公交线路,第 i 辆公交车将会在上面循环行驶。 例如,路线 routes[0] = [1, 5, 7] 表示第 0 辆公交车会一直按序列 1 → 5 → 7 → 1 → 5 → 7 → 1 → ... 这样的车站 阅读全文
posted @ 2021-06-28 14:38 _西瓜不甜 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount = 5, coins = [1, 2, 5] 输出: 4 解释: 有四种方式可以凑成总金额: 5=5 5=2+2+1 5=2+1+1+1 5=1+1+1+1+1 阅读全文
posted @ 2021-06-10 08:56 _西瓜不甜 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x ⇐ y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么 阅读全文
posted @ 2021-06-08 09:12 _西瓜不甜 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 给你 n 个包裹,你需要把它们装在箱子里,每个箱子装一个包裹。总共有 m 个供应商提供 不同尺寸 的箱子(每个规格都有无数个箱子)。如果一个包裹的尺寸 小于等于 一个箱子的尺寸,那么这个包裹就可以放入这个箱子之中。 包裹的尺寸用一个整数数组 packages 表示,其中 packages[i] 是第 阅读全文
posted @ 2021-06-07 16:55 _西瓜不甜 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 给你一个二进制字符串 s 。你可以按任意顺序执行以下两种操作任意次: 类型 1 :删除 字符串 s 的第一个字符并将它 添加 到字符串结尾。 类型 2 :选择 字符串 s 中任意一个字符并将该字符 反转 ,也就是如果值为 '0' ,则反转得到 '1' ,反之亦然。 请你返回使 s 变成 交替 字符串 阅读全文
posted @ 2021-06-07 16:35 _西瓜不甜 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 示例 1: 输入:strs = ["10", "0001", "1 阅读全文
posted @ 2021-06-06 09:57 _西瓜不甜 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 https://leetcode-cn.com/problems/intersection-of-two-linked-lists/comments/ public 阅读全文
posted @ 2021-06-04 08:50 _西瓜不甜 阅读(25) 评论(0) 推荐(0) 编辑
摘要: KMP模板 class Solution { public: int strStr(string haystack, string needle) { int n = haystack.size(); int m = needle.size(); if (m == 0) { return 0; } 阅读全文
posted @ 2021-04-20 09:19 _西瓜不甜 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你 在不 阅读全文
posted @ 2021-04-15 08:57 _西瓜不甜 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ /** * Definition for a binary tree nod 阅读全文
posted @ 2021-04-13 08:55 _西瓜不甜 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2] 若旋转 4 次,则可以得到 [0,1,2,4,5,6,7] 注意,数 阅读全文
posted @ 2021-04-08 08:55 _西瓜不甜 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 来源:力扣(LeetCode) 链接:https://leetco 阅读全文
posted @ 2021-03-18 08:52 _西瓜不甜 阅读(42) 评论(0) 推荐(0) 编辑