【Leetcode Daily】1266访问所有点的最小时间
发表于|更新于|力扣日常 | LeetcodeDaily
|总字数:389|阅读时长:1分钟|浏览量:
题目浅析
想查看原题可以点击题目链接。
简单地说,就是给一个点集,在二维坐标系上,现在需要按顺序走过这些点,规定直走和斜走一个格子都算一个单位时间(秒),求最终的时间最小值。
思路分享
由于必须按顺序,所以只要考虑如何计算出两个点之间的最小距离即可。对于两点,举例 0,0 和 2,3,自然是斜着两次竖着一次最少,可以发现能斜着走就斜着走是最佳的方法(简单贪心?),所以可以先计算两点的 x y 差值,取最小的那个作为斜着走的步,剩下的无论横竖都直接加上即可。
思考完发现,既然最终的答案是先取最小差值,再加上最小差值与最大差值的差值,数值上直接与最大差值相等啊,这就是切比雪夫距离,代表国际象棋移动距离。
灵神一眼就看出这是切比雪夫距离,秒了。
代码解答(强烈建议自行解答后再看)
- 参考题解
1 | class Solution: |
文章作者: 陆爻齐-LuYaoQi
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuYaoQi's Blogs!
相关推荐

2026-01-02
【Leetcode Daily】169多数元素
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个数组,其中有一个数字的个数,超过整体的一半,求出这个数字是什么 思路分享 哈希表查重的方法不多赘述,这里介绍灵神所教的一种方法,多数投票。 意思就是,设置一个初始值,和初始计数 1,如果遇到的值与初始值相等,则计数加一,否则计数减一,一旦计数归零,下个数字就当作初始值,计数设为 1。由于答案的数字一定比其他数字都多,所以这个算法下来的最终值一定为答案。 https://leetcode.cn/problems/majority-element/solutions/3744717/on-mo-er-tou-piao-fa-yan-jin-zheng-ming-ww1zv/ 但必须重申,这个算法的实现需要答案的个数严格大于整体个数的一半,不能只是一半。 代码解答(强烈建议自行解答后再看) 参考题解 12345678910class Solution: def majorityElement(self, nums: List[int]) -> int: ans, hp = 0,...

2026-01-01
【Leetcode Daily】66加一
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个整数数组,代表一个很大的数字,现在要对这个数字加一,返回一个加一后的大数组。 思路分享 在加一的情况下,这个数字变化最简单的情况就是最后一位加一,但复杂的情况是诸位向前进 1,不过只要意识到加一的情况只会把后面的九都变 0,并把最后一个非九的加一(没有就新增一位) 换句话,本质就是从右向左找到第一个非九的位 + 1,路上的九都换成零。 https://leetcode.cn/problems/plus-one/solutions/3784551/jian-dan-ti-jian-dan-zuo-pythonjavaccgoj-6gb2/?envType=daily-question&envId=2026-01-01 代码解答(强烈建议自行解答后再看) 参考题解 1234567891011121314class Solution: def plusOne(self, digits: List[int]) -> List[int]: stop = False ...

2026-01-16
【Leetcode Daily】2975移除栅栏得到的正方形田地的最大面积
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个矩形和栅栏坐标,可以删除其中的一些栅栏,求其中最大的正方形面积(没有正方形就 -1) 思路分享 找到横纵所有栅栏的间隔,找到两边的交集最大值,平方就是正方形面积 https://leetcode.cn/problems/maximum-square-area-by-removing-fences-from-a-field/solutions/2577867/fen-bie-ji-suan-bao-li-mei-ju-by-endless-zxhr/?envType=daily-question&envId=2026-01-16 代码解答(强烈建议自行解答后再看) 参考题解 1234567891011class Solution: def f(self, a:List[int], mx:int) -> Set[int]: a += [1, mx] a.sort() return set(y-x for x, y in...

2025-08-13
【Leetcode Daily】1003检查替换后的词是否有效
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个字符串,该字符串是从一个空字符串开始,不断插入“abc”形成的,这个插入是从字符串的任意处都可以行动。 思路分享 这个题目和实际的题意完全不是一个意思,坏。不过这个不重要。 发现做栈,只要把握一点,就是何时弹栈。例如本题,只要意识到,弹栈的时候,正在遍历的字母是 c,栈顶有 a 和 b,就轻松地写出了条件。 这个条件应该不是最快的,因为只要中间的 abc 有一处无法正确匹配,就可以算是检测不过关,所以更快的思路应该是按照正在遍历的 abc 三种情况,分别检测栈是否符合“正常”。 https://leetcode.cn/problems/check-if-word-is-valid-after-substitutions/solutions/2253773/zhan-jian-ji-xie-fa-pythonjavacgo-by-end-i9o7/ 本题不断插入 abc,并要求检测是否都是...

2025-05-08
【Leetcode Daily】1004最大连续1的个数III
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个由 0 和 1 组成的整数数组,现在最多可以把其中 k 个 0 反转成 1。求反转后最长连续 1 的个数。 思路分享 纯粹的不定长滑动窗口(【Leetcode Daily】3090每个字符最多出现两次的最长字符串),无需多盐。 代码解答(强烈建议自行解答后再看) 陆爻齐的解法 1234567891011121314151617class Solution {public: int longestOnes(vector<int>& nums, int k) { int zero_count = 0; int left = 0; int n = nums.size(); int ans = 0; for (int i = 0; i < n;i++) { zero_count += 1-nums[i]; while(zero_count...

2025-08-19
【Leetcode Daily】1021删除最外层的括号
题目浅析 想查看原题可以点击题目链接。 简单地说,就是按照题目规定的“原语”来分解有效的括号字符串,要求去掉最外面的一层括号。 思路分享 通过栈记录可以判定当前的括号是否为最外层。具体方法是记录符号时,如果栈内有括号,说明不是最外层,就记录到结果中,否则就只压栈。 https://leetcode.cn/problems/remove-outermost-parentheses/solutions/1520365/shan-chu-zui-wai-ceng-de-gua-hao-by-leet-sux0/ 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112131415class Solution: def removeOuterParentheses(self, s: str) -> str: res, stack = "", [] for c in s: print(res) print(stack) ...
公告
希望你我都能得偿所愿
PS:相对流水账的文章只能在归档找得到
系列文章
