摘要:
题目链接:15. 三数之和 方法:排序 + 相向双指针 解题思路 由题意可知,排序不影响结果,非递减排序之后3数之和满足单调性,即$x < x1$ || $y < y1$ || $z < z1$,$f(x, y, z) < f(x1, y1, z1)$; 现在枚举$x$下标$0 <= i <= n 阅读全文
posted @ 2023-04-07 21:59
lixycc
阅读(1579)
评论(1)
推荐(0)
摘要:
题目链接:1237. 找出给定方程的正整数解 方法一:二分查找 解题思路 枚举 $x$,然后对 $y$ 进行二分查找,确定满足 $customfunction.f(x, y) == z$ 的数对 $(x, y)$,将其加入 $ans$ 中,最终返回 $ans$。 代码 /* * // This is 阅读全文
posted @ 2023-04-07 21:56
lixycc
阅读(84)
评论(0)
推荐(0)
摘要:
题目链接:1139. 最大的以 1 为边界的正方形 方法:二维数组前缀和 解题思路 假设以 $(i, j)$ 为左上角端点的正方形网格边长为 $d$,则该正方形的四条边 $up、down、left、right$ 均为$d$,两者为充分必要条件。根据二维前缀和运算可得: up = s[i][j + d 阅读全文
posted @ 2023-04-07 21:46
lixycc
阅读(19)
评论(0)
推荐(0)
摘要:
题目链接:1250. 检查「好数组」 方法:最大公约数gcd 裴蜀定理简介 (1)若 $a,b$ 是整数,且 $gcd(a,b)=d$,那么对于任意的整数 $x,y$,$ax + by$ 都一定是 $d$ 的倍数,特别地,一定存在整数 $x,y$,使 $ax+by=d$ 成立。 (2)推论:$a,b 阅读全文
posted @ 2023-04-07 21:42
lixycc
阅读(41)
评论(0)
推荐(0)
摘要:
题目链接:496. 下一个更大元素 I 方法一:模拟 + 哈希表 解题思路 通过哈希表存储,$nums$ 数组中元素对应的坐标,元素->坐标。 然后模拟查找过程。 代码 class Solution { public: vector<int> nextGreaterElement(vector<in 阅读全文
posted @ 2023-04-07 21:28
lixycc
阅读(27)
评论(0)
推荐(0)
摘要:
题目链接:1124. 表现良好的最长时间段 方法:前缀和 + 单调栈 前缀和简介 对于数组 $a[n]$,其前缀和数组 $s[n + 1]$, $s[i]$ 表示数组 $a[0, i - 1]$ 的和,$1 ≤ i ≤ n$。 s[0] = 0; for (int i = 1; i <= n; i 阅读全文
posted @ 2023-04-07 21:09
lixycc
阅读(36)
评论(0)
推荐(0)
摘要:
题目链接:1234. 替换子串得到平衡字符串 方法:同向双指针 解题思路 若可以通过「替换一个子串」的方式,使原字符串 s 变成一个「平衡字符串」,则说明子串外任意字符的数量 $s ≤ n / 4$,否则一旦有一个字符的数量大于 $n / 4$,那么不论如何替换,必定有另一个字符的数量小于 $n / 阅读全文
posted @ 2023-04-07 21:00
lixycc
阅读(55)
评论(0)
推荐(0)
摘要:
题目链接:2563. 统计公平数对的数目 方法:排序 + 二分 解题思路 (1)先对数组进行排序,排序之后并不影响公平数对的数目; (2)对于任意一个 $j$,它的公平数对 $(i, j)$ 满足 $lower - nums[j] ≤ nums[i] ≤ upper - nums[j]$,即在 $[ 阅读全文
posted @ 2023-04-07 20:51
lixycc
阅读(137)
评论(0)
推荐(0)
摘要:
题目链接:1138. 字母板上的路径 方法:模拟 解题思路 为了使得移动次数最小,每次移动方式为,"直角移动"(如下图),但由于 $z$ 字母位置的特殊性,当其作为目标字母和当前字母时,为了避免越界问题,需要调整 $x$ 和 $y$ 方向上移动的顺序。 {:width=400} 代码 class S 阅读全文
posted @ 2023-04-07 20:12
lixycc
阅读(33)
评论(0)
推荐(0)
摘要:
题目链接:1797. 设计一个验证系统 方法:哈希 解题思路 注意:在判断 $tokenId$ 是否出现过时,使用 $Time.count(tokenId)$,而不是使用 $Time[tokenId]$,因为只要使用之后,$tokenId$ 就会被添加进 $map$ 中,影响后续计数的结果。 代码 阅读全文
posted @ 2023-04-07 20:10
lixycc
阅读(39)
评论(0)
推荐(0)
摘要:
题目链接:1233. 删除子文件夹 方法一:排序 + 循环 解题思路 先对 $folder$ 数组根据字典序进行排序,排序完成后,扫描 $folder$ 数组。由于在同一个高层目录下的文件夹在同一段区域,那么这一段区域的第一个文件夹就是这一系列文件夹的最高层目录 $(high)$,将其加入结果数组中 阅读全文
posted @ 2023-04-07 20:05
lixycc
阅读(59)
评论(0)
推荐(0)
摘要:
题解链接:剑指 Offer 16. 数值的整数次方 方法一:迭代实现快速幂 解题思路 通过迭代的方法,自下向上实现快速幂求解过程,初始化结果 $res = 1$,底数 $t = x$ ,幂次为 $n$。当 $n$ 为奇数时,$res = res * t$,先乘上一个 $t$,此时还有 $n-1$ 个 阅读全文
posted @ 2023-04-07 19:59
lixycc
阅读(30)
评论(0)
推荐(0)
摘要:
题目链接:剑指 Offer 15. 二进制中1的个数 方法一:位运算 解题思路 x = n & -n,$x$ 表示 $n$ 的最后一位 $1$ 所对应的值,每减去一次 $x$,相当于有一个 $1$,$res ++$ 。 代码 class Solution { public: int hammingW 阅读全文
posted @ 2023-04-07 19:45
lixycc
阅读(21)
评论(0)
推荐(0)
摘要:
题目链接:1604. 警告一小时内使用相同员工卡大于等于三次的人 方法:模拟 解题思路 先对数据进行处理,根据 $name$ 将其时间存储在哈希表中,对哈兮表进行遍历,每个 $name$ 对应一个时间序列,首先对时间序列进行从小到大排序,从 $i = 2$ 开始遍历该序列,若存在 $list[i - 阅读全文
posted @ 2023-04-07 19:41
lixycc
阅读(13)
评论(0)
推荐(0)
摘要:
题目链接:11. 盛最多水的容器 方法:相向双指针 解题思路 根据题目要求,$2 <= n <= 10^5$,可知如果使用暴力求解,显然会超时。 使用双指针算法可以大大缩短时间复杂度,取 $[i, j]$ 双指针,初始化为 $i = 0, j = n - 1, i < j, $ 最大面积 $s = 阅读全文
posted @ 2023-04-07 19:38
lixycc
阅读(19)
评论(0)
推荐(0)
摘要:
题目链接:1210. 穿过迷宫的最少移动次数 参考:还在 if-else?一个循环处理六种移动! 代码 class Solution { private: static constexpr int mov[3][3] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}; // 下 阅读全文
posted @ 2023-04-07 19:33
lixycc
阅读(30)
评论(0)
推荐(0)

浙公网安备 33010602011771号