
小技巧
AAS48
一起学算法
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2249. 统计圆内格点数目(技巧)
给你一个二维整数数组 circles ,其中 circles[i] = [xi, yi, ri] 表示网格上圆心为 (xi, yi) 且半径为 ri 的第 i 个圆,返回出现在 至少一个 圆内的 格点数目。利用公式:(x-a)²+(y-b)²原创 2022-10-19 15:12:56 · 736 阅读 · 0 评论 -
Leetcode 696. 计数二进制子串(技巧)
链接:https://leetcode.cn/problems/count-binary-substrings/solution/ji-shu-er-jin-zhi-zi-chuan-by-leetcode-solution/给定一个字符串 s,统计并返回具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是成组连续的。我们只要遍历所有相邻的数对,求它们的贡献总和,即可得到答案。重复出现(不同位置)的子串也要统计它们出现的次数。来源:力扣(LeetCode)原创 2022-10-15 11:54:11 · 278 阅读 · 0 评论 -
Leetcode 1217. 玩筹码(脑筋急转弯)
其实每次cost的值就是奇数位置的筹码移动到偶数位置和偶数位置的筹码移动到奇数位置的最小值。我们需要把所有筹码移到同一个位置。position[i] + 2 或 position[i] - 2 ,此时 cost = 0。position[i] + 1 或 position[i] - 1 ,此时 cost = 1。第 i 个筹码的位置是 position[i]。返回将所有筹码移动到同一位置上所需要的 最小代价。原创 2022-10-09 16:59:29 · 230 阅读 · 0 评论 -
892. 三维形体的表面积(技巧)
至于下边和右边的面积,由后面的柱体来减。首先,一个柱体一个柱体的看,每个柱体是由:2 个底面(上表面/下表面)+ 所有的正方体都贡献了 4 个侧表面积。输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输入:grid = [[1,2],[3,4]]原创 2022-10-08 11:38:31 · 274 阅读 · 0 评论 -
976. 三角形的最大周长(巧妙的贪心+排序)
如果 A[i-2] + A[i-1] A[i]了 (j原创 2022-10-07 13:49:16 · 219 阅读 · 0 评论 -
Leetcode 340. 至多包含 K 个不同字符的最长子串(滑动窗口)
给你一个字符串 s 和一个整数 k ,请你找出 至多 包含 k 个 不同 字符的最长子串,并返回该子串的长度。注意时间复杂度的控制,如果无脑O(n^2)会超时。我这里用hash优化到了O(n)原创 2022-09-18 11:59:53 · 306 阅读 · 0 评论 -
Leetcode 删除有序数组中的重复项(I, II两题)
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。将最终结果插入 nums 的前 k 个位置后返回 k。原创 2022-09-17 16:22:54 · 172 阅读 · 0 评论 -
面试题 17.10. 主要元素(摩尔投票)
数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。大致思想是如果有不同的就相互抵消,最后剩下来的那个x是可能的值。这个算法在求主要元素,或占比比较大的元素时具有很好的效果。所以最后还得检验一遍。原创 2022-09-17 12:45:05 · 135 阅读 · 0 评论 -
面试题 17.09. 第 k 个数(技巧)
链接:https://leetcode.cn/problems/get-kth-magic-number-lcci/solution/di-k-ge-shu-jiu-shi-xiang-bu-tong-wei-he-san-zhi-z/例如,前几个数按顺序应该是 1,3,5,7,9,15,21。定义三个index 分别指向上面三个数列,下一个丑数一定是三个 index 代表的值中最小的那个。反过来说也是一样的,一个丑数 x3 / x5 / x7 就会得到某一个更大的丑数。来源:力扣(LeetCode)原创 2022-09-17 12:10:46 · 278 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找(二分技巧)
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。如果目标比右上角元素大,则往下搜。如果目标比右上角元素小,则往左搜。可以用递归也可以用循环实现。此题用暴力做效率很低,虽然也发现了矩阵有序的特点,但不知如何更好的使用二分查找。所以我突然反应出来,原来右上角是一个比较的起始位置。原创 2022-09-16 13:39:01 · 159 阅读 · 0 评论 -
1343. 大小为 K 且平均值大于等于阈值的子数组数目(滑动窗口模板题)
请你返回长度为 k 且平均值大于等于 threshold 的子数组数目。给你一个整数数组 arr 和两个整数 k 和 threshold。原创 2022-09-16 12:10:02 · 135 阅读 · 0 评论 -
Leetcode 628. 三个数的最大乘积
然后如果有负数产生最大值,必然是负数的个数大于等于2,且最小的两个负数乘一个最大的正数,这个值称为fumax。给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。所以我是这样想的,首先取出三个最大的数相乘:作为zhengmax。如果单纯排序取最大的三个数相乘,又会有负数的情况。最后比较zhengmax 和fumax谁大即可。常规思路三重循环超时。原创 2022-09-10 17:20:01 · 138 阅读 · 0 评论 -
天梯赛习题:整除光棍(数学,模拟除法)
L1-046 整除光棍 (20 分)这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然...原创 2019-03-29 18:36:15 · 837 阅读 · 0 评论 -
LeetCode: 650. 只有两个键的键盘(递归)
最初在一个记事本上只有一个字符 ‘A’。你每次可以对这个记事本进行两种操作:Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。Paste (粘贴) : 你可以粘贴你上一次复制的字符。给定一个数字 n 。你需要使用最少的操作次数,在记事本中打印出恰好 n 个 ‘A’。输出能够打印出 n 个 ‘A’ 的最少操作次数。示例 1:输入: 3输出: 3...原创 2019-03-13 20:10:27 · 364 阅读 · 0 评论 -
天梯赛习题:L1-020 帅到没朋友(索引查找)
L1-020 帅到没朋友 (20 分)当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。输入格式:输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以...原创 2019-03-08 16:56:59 · 397 阅读 · 0 评论 -
天梯赛习题:L1-039 古风排版 (递归,有坑点)
L1-039 古风排版 (20 分)中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case...原创 2019-03-09 15:53:29 · 618 阅读 · 0 评论 -
天梯赛习题:L1-043 阅览室(合理设计)
天梯图书阅览室请你编写一个简单的图书借阅统计程序。当读者借书时,管理员输入书号并按下S键,程序开始计时;当读者还书时,管理员输入书号并按下E键,程序结束计时。书号为不超过1000的正整数。当管理员将0作为书号输入时,表示一天工作结束,你的程序应输出当天的读者借书次数和平均阅读时间。注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有S没有E,或者只有E没有S的纪录,系统应能自动忽略这种无效纪...原创 2019-03-15 14:27:37 · 2265 阅读 · 0 评论 -
天梯赛习题:L1-034 点赞(索引)
L1-034 点赞 (20 分)微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。输入格式:输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1 ⋯F...原创 2019-03-15 14:47:07 · 637 阅读 · 0 评论 -
天梯赛习题:倒数第N个字符串(DFS + 漂亮的剪枝!)
L1-050 倒数第N个字符串 (15 分)给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, …, aaz, aba, abb, …, abz, …, zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒...原创 2019-03-15 19:04:56 · 397 阅读 · 1 评论 -
蓝桥杯:历届试题 合根植物(并查集 + 索引思想)
题目:https://blog.youkuaiyun.com/weixin_40163242/article/details/88397162还是刚刚那道题,这次用并查集做就成功AC了。其实用并查集做完才发现,其实比广搜做还要简单啊!这题简直就是裸的并查集了,然后这题还有一个索引的思想注意一下。在最后我将所有的boss结点的tag值置为1,然后我再遍历一遍tag数组,看哪些值为1,哪些就是boss结点了...原创 2019-03-11 17:51:12 · 294 阅读 · 0 评论 -
第八届蓝桥杯B组省赛试题:日期问题(字符串处理 + STL容器的高级应用 + 运算符重载)
历届试题 日期问题时间限制:1.0s 内存限制:256.0MB问题描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。...原创 2019-03-16 11:55:08 · 306 阅读 · 0 评论 -
天梯赛习题:7-8 符号配对(栈的运用 + 合理处理)
7-8 符号配对 (20 分)请编写程序检查C语言源程序中下列符号是否配对:/*与*/、(与)、[与]、{与}。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?...原创 2019-03-20 14:58:38 · 1420 阅读 · 0 评论 -
天梯赛习题:7-13 奥运排行榜(结构体排序)
7-13 奥运排行榜 (25 分)每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。输入格式:输入的...原创 2019-03-20 16:50:00 · 1015 阅读 · 1 评论 -
天梯赛习题:A - B(索引提速)
L1-011 A-B (20 分)本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过104 ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式:在一行中打印出A−B的结果字符串。输入样例:...原创 2019-03-08 16:15:16 · 1042 阅读 · 0 评论