算法刷题
文章平均质量分 94
本专栏主要是整理归纳算法刷题博客,希望可以给小伙伴带来一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来。欢迎订阅,共勉 💪
乌云暮年
行而不辍,未来可期
展开
-
沉岛思想(BFS)-朋友圈思想(并查集)
题目: 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:解题思路:对于上面这个给定矩阵应返回 6。注意答案不应该是11,因为岛屿只能包含水平或垂直的四个方向的‘1’。加粗的部分就是最大面积(上下左右相邻)。我理解的这道题就像扫雷,所有相连的1的土地的数量和就是最大面积。需要注意的是:要求出所有相连的原创 2023-04-16 01:18:16 · 277 阅读 · 10 评论 -
优先、双端队列-我的基础算法刷题之路(八)
定义特点队列一端删除(头)另一端添加(尾)双端队列两端都可以删除、添加优先队列优先级高者先出队延时队列根据延时时间确定优先级并发非阻塞队列队列空或满时不阻塞并发阻塞队列队列空时删除阻塞、队列满时添加阻塞Java 中 LinkedList 即为典型双端队列实现,不过它同时实现了Queue 接口,也提供了栈的 push pop等方法注2:不同语言,操作双端队列得方法命名有所不同,见下表操作JavaJavaScriptC++尾部插入offerLastpush。原创 2023-04-15 00:58:12 · 478 阅读 · 11 评论 -
二叉树-我的基础算法刷题之路(七)
二叉树是一种非线性数据结构,代表着“一分为二”的分治逻辑。二叉树的结点包含「值」和两个「指针」,分别指向左子结点和右子结点。选定二叉树中某结点,将其左(右)子结点以下形成的树称为左(右)子树。二叉树的术语较多,包括根结点、叶结点、层、度、边、高度、深度等。二叉树的初始化、结点插入、结点删除操作与链表的操作方法类似。常见的二叉树类型包括完美二叉树、完全二叉树、完满二叉树、平衡二叉树。完美二叉树是理想状态,链表则是退化后的最差状态。原创 2023-04-05 07:55:21 · 913 阅读 · 36 评论 -
蓝桥杯·3月份刷题集训Day07
:1200000 有多少个约数(只计算正约数)。运行限制:解题代码:A2、质数拆分:本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。将 2019 拆分为若干个两两不同的质数之和,一共有多少种不同的方法?注意交换顺序视为同一种方法,例如2+2017=2019 与 2017+2=2019 视为同一种方法。运行限制:解题代码:集训BB1、路径之谜:小明冒充 X 星球的骑士,进入了一个奇怪的城堡。城堡里边什么都没有,只有方形石头铺成的地面。假设城堡地面是 n×n 个方格。如下图所示原创 2023-04-03 08:47:23 · 916 阅读 · 7 评论 -
蓝桥杯·3月份刷题集训Day06
:你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第 11 个棋盘格放 11 粒麦子,在第 22 个棋盘格放 22 粒麦子,在第 33 个棋盘格放 44 粒麦子,在第 44 个棋盘格放 88 粒麦子,…后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有 6464 格)。国王以为他只是想要一袋麦子而已,哈哈大笑。当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!请你借助计算机准确地计算,到底需要多少粒麦子。运行限制:A2、等差数列:数学原创 2023-04-01 15:32:48 · 1235 阅读 · 16 评论 -
蓝桥杯·3月份刷题集训Day05
:已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。输入格式:输入只有一行,包含一个正整数 n,6≤n≤2×109。输出格式:输出只有一行,包含一个正整数 p,即较大的那个质数。输入输出样例:运行限制:解题代码:测试用例过了3/5.A2、质数:给定一个正整数 N,请你输出 N 以内(不包含 N)的质数以及质数的个数。输入格式:输入一行,包含一个正整数 N。 1≤N≤103输出格式:共两行。第 1 行包含若干个素数,每两个素数之间用一个空格隔开,素数从小到大输出。第 2 行包含一个整数,原创 2023-03-30 21:32:40 · 571 阅读 · 11 评论 -
蓝桥杯·3月份刷题集训Day04
:小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。输入格式:输入一行包含一个单词,单词只由小写英文字母组成。对于所有的评测用例,输入的单词长度不超过 1000。输出格式:输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现原创 2023-03-27 23:38:19 · 1179 阅读 · 31 评论 -
队列-我的基础算法刷题之路(六)
队列(queue)是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。习惯来说,添加的一端称为尾,移除的一端称为头,就如同生活中的排队买商品。队列遵循先入先出、后入后出的基本原则。fill:#333;color:#333;color:#333;fill:none;1234进队出队。原创 2023-03-26 12:52:13 · 697 阅读 · 23 评论 -
蓝桥杯·3月份刷题集训Day03
:在一个 n 行 m 列的方格图上有一些位置有地雷,另外一些位置为空。请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。输入格式:输入的第一行包含两个整数 n,m。第 2 行到第 n+1 行每行包含 m 个整数,相邻整数之间用一个空格分隔。如果对应的整数为 0,表示这一格没有地雷。如果对应的整数为 1,表示这一格有地雷。其中,1≤n,m≤100 分钟后还是在当天。输出格式:输出 n 行,每行 m 个整数,相邻整数之间用空格分隔。对于没有地雷的方格,输出这格周围的地雷数量。对于有地雷的方格,输出原创 2023-03-24 23:44:44 · 1131 阅读 · 9 评论 -
蓝桥杯·3月份刷题集训Day02
:小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?输入格式:输入一行包含三个整数 a,b 和 n.输出格式:输出一个整数代表天数。样例输入:样例输出:评测用例规模与约定:对于 50% 的评测用例, 1≤a,b,n≤106.对于 100%100% 的评测用例, 1≤a,b,n≤1018.运行限制:解题代码:A2、天干地支:古代中国使用天干地支来记录当前的年份。天干一共有原创 2023-03-23 23:04:42 · 1210 阅读 · 23 评论 -
栈-我的基础算法刷题之路(五)
栈是一种线性的数据结构,也是一个先入后出的有序列表。只能在其一端添加数据和移除数据。习惯来说,这一端称之为栈顶,另一端不能操作数据的称之为栈底,就如同生活中的一摞书。原创 2023-03-22 09:54:29 · 201 阅读 · 9 评论 -
我的基础算法刷题及代码详解(三)
本篇博客旨在整理记录自己刷的一些基础题的思路、代码以及注解,同时希望可给小伙伴一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来,共勉 💪。原创 2023-03-20 00:57:34 · 394 阅读 · 27 评论 -
训练-我的基础算法刷题之路(四)
预备爷gzp是个逗(tu)比(hao),为了在即将到来的英语的quiz中不挂科,gzp废寝忘食复习英语附录单词表,俨然一场人间悲剧。不过上天有好生之德,上帝扔给了gzp一张纸,上面记载了将要考到的单词。不过gzp是个逗比,之前复习的东西全忘记了,所以他又要再来一次复习。不过已经知道了要考的单词,所以不需要复习单词表的所有页数。因此,现在需要你帮助他求出有多少页纸需要复习。他会告诉你每个单词会在哪几页出现,并且告诉你要考哪些单词,你只要告诉他答案就可以了。由于一个单词会出现在不同页上,只需要复习在最前面一原创 2023-03-21 00:20:09 · 492 阅读 · 21 评论 -
链表-我的基础算法刷题之路(二)
顺序表:顺序表是使用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储,底层就是一个数组。链表(linked list):是一种物理存储结构上的非连续存储结构。有人可能好奇数组呢,数组是一种线性数据结构,用于存放相同的数据类型的集合容器。 数据元素的逻辑顺序是通过链表中的引用链接次序实现的(就是由一个个节点组成的,这些节点逻辑上连续,物理上不连续)。由于不必须按顺序存储,链接在插入的时候可以达到O(1)的复杂度,比另一个线性表顺序表快得多,但是查找以恶搞节点或者访问特点编号的节点原创 2023-03-18 00:05:51 · 142 阅读 · 12 评论 -
我的基础算法刷题及代码详解
难度:简单题目:给定两个字符串形式的非负整数 和 ,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 ), 也不能直接将输入的字符串转换为整数形式。提示:解题代码:167. 两数之和 II - 输入有序数组难度:中等题目:给你一个下标从 1 开始的整数数组 numbers ,该数组已按非递减顺序排列,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1原创 2023-03-15 10:37:03 · 212 阅读 · 12 评论 -
蓝桥杯·3月份刷题集训Day01
:小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 请计算这次考试的最高分、最低分和平均分。输入格式输入的第一行包含一个整数 n (1≤n≤104),表示考试人数。接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。输出格式输出三行。第一行包含一个整数,表示最高分。第二行包含一个整数,表示最低分。第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。输入输出样例运行限制解题代码:A2、饮料换购:乐羊羊饮料厂正在举办一次促原创 2023-03-22 16:37:30 · 475 阅读 · 16 评论