蓝桥杯考前每日一题
极客李华
优快云,腾讯云,阿里社区内容合伙人、系统分析师、全网都叫极客李华,交流合作私信+。欢迎技术交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二叉树层序遍历
二叉树层序遍历是一种广度优先的遍历方式,它从二叉树的根节点开始,逐层遍历二叉树的各个节点,直到遍历完所有节点为止。在层序遍历中,我们按照从上到下、从左到右的顺序依次访问每个节点。原创 2024-01-30 21:05:47 · 888 阅读 · 0 评论 -
二维矩阵搜索问题——小米面试题
另一个方法就是寻找规律,因为这个矩阵是从左到右,从上到下都是递增的,所以可以采用,我们从这个矩阵的右上角开始,如果当前位置的值小于目标值,那么我们向下移动一行;如果当前位置的值大于目标值,那么我们向左移动一列。输入:矩阵 = [[1,4,7,11,15],[2,5,8,12,19],[2,5,8,12,19],[10,13,14,17, 24],[18,21,23,26,30]],算法思路,这个题有两个算法思路,一个是把二维的变成一维的,然后再进行二分查找,时间复杂度是O(nlogn)原创 2023-11-04 17:33:57 · 199 阅读 · 0 评论 -
掌握归并排序:理解原理并用C++实现
归并排序的思路就是,先把这堆牌一分为二,然后再把每一堆牌分别一分为二,一直这样分下去,直到每一堆只剩下一张牌。这样,每一堆牌都是有序的,因为只有一张牌。你每次从两堆牌中各取出顶上的一张,比较它们的数字大小,把较小的那张放在新的一堆牌的最下面。这段代码首先定义了一个merge函数,用于合并两个有序的子数组,然后定义了一个mergeSort函数,用于递归地将数组分成两部分并排序。你再用同样的方法,把这堆有序的牌和别的有序的牌合并,一直这样合并下去,最后就可以得到一堆按照数字从小到大有序的牌了。原创 2023-10-31 10:57:44 · 120 阅读 · 0 评论 -
寻找最接近子数组和的算法设计及其C++实现
给定两个数组a和b,以及两个整数n和m,分别代表数组a和b的元素数量。任务是找到数组b中的一个连续子数组,使得该子数组的和最接近数组a中的某个元素。如果存在多个符合条件的子数组,应输出起始点最靠左的子数组。通过这种方式,我们成功解决了给定的问题,并提供了一个清晰、易于理解的C++实现。上述代码通过双重循环遍历数组b中所有可能的子数组,并与数组a中的每个元素进行比较,找到和最接近的子数组。数组b: 15, 29, 42, 1, 44, 1。函数返回最接近的子数组的起始和结束索引,主函数。原创 2023-10-28 23:06:36 · 180 阅读 · 0 评论 -
试除法求约数:深入分析与实践
在数学和算法领域,约数,也称因数,是一个非常基础的概念。给定一个整数,它的所有约数是能够整除它的数。例如,6 的约数包括 1、2、3 和 6。为了找到一个数的所有约数,一种常见的方法是试除法。本文将通过一个简单的 C++ 程序来探讨试除法如何工作。试除法是求约数问题中最直接的方法。它的时间复杂度是 O(√n)。虽然在某些情况下可能存在更高效的方法,但试除法因其简单性和普适性而广受欢迎。函数首先读入一个数字 n,表示需要求约数的数字的数量。然后,程序对每个数字调用。函数,并将结果打印出来。原创 2023-10-26 15:04:44 · 149 阅读 · 0 评论 -
TCP与UDP的区别:深入探索与应用案例
传输控制协议 (TCP) 和用户数据报协议 (UDP) 是互联网协议套件中的两种主要传输层协议。:当你使用浏览器访问一个网站时,背后使用的是 HTTP/HTTPS 协议,这些协议都是基于 TCP 的。因为在实时通话中,丢失几个数据包比等待重新发送更可取。: 多数实时多人在线游戏如 “Fortnite” 使用 UDP,因为它们需要实时的、低延迟的通信,而 occasional 的数据丢失是可以容忍的。TCP 是一种面向连接的、可靠的、字节流的传输层通信协议。UDP 是一个简单的面向消息的传输层协议。原创 2023-10-26 15:02:48 · 264 阅读 · 0 评论 -
试除法判定质数:深入探索与代码分析
质数它是只有 1 和其自身两个正因子的自然数,例如:2、3、5、7 等。这篇文章将探讨如何使用试除法来判定一个数字是否为质数,并通过提供的代码来进行详细的分析。此函数的核心就是上面描述的试除法。它首先排除小于2的数,然后尝试除以每一个小于其平方根的正整数。试除法是判定质数最直观、简单的方法。它的基本思想是:要确定一个数。可以被这其中的任何一个数整除,那么。不是质数,并且它有一个因子大于。是否为质数,我们可以尝试去除。,那么它必定有一个小于或等于。来避免使用昂贵的平方根计算。一个很好的观察是:如果。原创 2023-10-26 14:58:55 · 213 阅读 · 0 评论 -
C++ 中使用 `<bits/stdc++.h>` 的利与弊
如果你的代码在 GCC 上可以正常工作,但在尝试使用 Clang 或 MSVC 编译时,可能会因为这个非标准头文件而出错。: 对于一个大型的商业软件项目,使用这个头文件可能会导致编译时间从几分钟增加到十几分钟,这在实际开发中是不可接受的。: 如果一个新的开发者加入项目,并尝试理解代码,他/她可能会发现很难判断代码依赖于哪些具体的库功能。: 因为它包含了所有的头文件,所以编译时间可能会增加,特别是对于大型项目。也会包括所有其他的头文件,这可能会导致额外的编译时间和内存使用。: 想象一个场景,你使用了。原创 2023-10-26 14:38:37 · 3411 阅读 · 0 评论 -
使用 BFS 解决走迷宫问题
使用队列是实现 BFS 的关键。因为 BFS 要求我们首先访问早先加入的节点(先进先出),而队列具有这样的特性。我们从起点开始,将其加入队列,然后持续处理队列中的元素,每次从队头取出一个节点,访问它的邻居,并将未访问的邻居加入队尾。在一个由 0 和 1 构成的二维迷宫中,0 代表可以走的路径,而 1 代表墙或障碍物。广度优先搜索(BFS)是一个层次化的搜索过程,首先访问起始节点,然后访问所有相邻的节点,再访问这些节点的邻居,以此类推。这种方法确保我们在探索更远的节点之前,首先探索所有近邻节点。原创 2023-10-26 14:29:16 · 737 阅读 · 0 评论 -
使用 BFS 解决走迷宫问题
使用队列是实现 BFS 的关键。因为 BFS 要求我们首先访问早先加入的节点(先进先出),而队列具有这样的特性。我们从起点开始,将其加入队列,然后持续处理队列中的元素,每次从队头取出一个节点,访问它的邻居,并将未访问的邻居加入队尾。在一个由 0 和 1 构成的二维迷宫中,0 代表可以走的路径,而 1 代表墙或障碍物。广度优先搜索(BFS)是一个层次化的搜索过程,首先访问起始节点,然后访问所有相邻的节点,再访问这些节点的邻居,以此类推。这种方法确保我们在探索更远的节点之前,首先探索所有近邻节点。原创 2023-10-26 14:21:32 · 574 阅读 · 0 评论 -
八皇后问题与其深度优先搜索 (DFS) 解法
这个问题的解决方案基于回溯的思想,其中 DFS 是回溯的核心策略。我们逐行尝试放置皇后,每次成功放置一个皇后后,我们都深入探索下一行的所有可能性。如果在某个位置放置皇后后发现没有合适的位置可以放置下一个皇后,我们就会返回到上一行,并移动之前放置的皇后到下一个可能的位置。八皇后问题是一个古老而经典的问题。在一个 8x8 的棋盘上,你要放置 8 个皇后,使得这些皇后之间互不攻击。这意味着任意两个皇后都不能处于同一行、同一列或同一对角线上。这个问题可以推广到 NxN 的棋盘与 N 个皇后。原创 2023-10-26 14:13:27 · 237 阅读 · 0 评论 -
整数拆分(c++,java)
一个整数总可以拆分为 2 的幂的和。例如:7可以拆分成共计 6 种不同拆分方式。再比如:4 可以拆分成:4=4,4=1+1+1+1,4=2+2,4=1+1+2。用 f(n) 表示 n 的不同拆分的种数,例如 f(7)=6。要求编写程序,读入 n,输出 f(n)mod109。输入格式一个整数 n。输出格式一个整数,表示 f(n)mod109。数据范围1≤N≤106输入样例:7输出样例:6。原创 2023-03-18 18:25:13 · 582 阅读 · 1 评论 -
数组元素的目标和(蓝桥杯每日一题)
给定两个升序排序的有序数组 A和 B,以及一个目标值 x。数组下标从 0 开始。请你求出满足 A[i]+B[j]=x 的数对 (i,j)。数据保证有唯一解。输入格式第一行包含三个整数 n,m,x,分别表示 A 的长度,B 的长度以及目标值 x。第二行包含 n 个整数,表示数组 A。第三行包含 m 个整数,表示数组 B。输出格式共一行,包含两个整数 i 和 j。数据范围数组长度不超过 105。同一数组内元素各不相同。1≤数组元素≤109输入样例:4 5 6。原创 2023-02-24 16:07:36 · 346 阅读 · 0 评论 -
最长连续不重复子序列(蓝桥杯每日一题)
给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 n。第二行包含 n 个整数(均在 0∼105范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤105输入样例:51 2 2 3 5输出样例:3。原创 2023-02-24 16:02:16 · 505 阅读 · 0 评论 -
日志统计(蓝桥杯每日一题)
小明维护着一个程序员论坛。行。其中每一行的格式是:ts id表示在 ts时刻编号 id的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D的时间段内收到不少于 K个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T满足该帖在 [T,T+D)这段时间内(注意是左闭右开区间)收到不少于 K个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。输入格式。原创 2023-02-23 19:53:01 · 203 阅读 · 0 评论 -
字符串删减(蓝桥杯每日一题)
给定一个由 n个小写字母构成的字符串。现在,需要删掉其中的一些字母,使得字符串中不存在连续三个或三个以上的 x。请问,最少需要删掉多少个字母?如果字符串本来就不存在连续的三个或三个以上 x,则无需删掉任何字母。第一行包含整数 n。第二行包含一个长度为 n的由小写字母构成的字符串。输出最少需要删掉的字母个数。原创 2023-02-23 19:44:10 · 205 阅读 · 0 评论 -
K倍区间(蓝桥杯每日一题)
给定一个长度为 N的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj之和是 K的倍数,我们就称这个区间 [i,j]是 K倍区间。你能求出数列中总共有多少个 K倍区间吗?输入格式第一行包含两个整数 N和 K。以下 N行每行包含一个整数 Ai。输出格式输出一个整数,代表 K倍区间的数目。数据范围输入样例:5 212345输出样例:6。原创 2023-02-22 17:36:57 · 312 阅读 · 2 评论 -
截断数组(蓝桥杯每日一题)
给定一个长度为 n的数组 a1,a2,…,an。现在,要将该数组从中间截断,得到三个非空子数组。要求,三个子数组内各元素之和都相等。请问,共有多少种不同的截断方法?输入格式第一行包含整数 n。第二行包含 n个整数 a1,a2,…,an。输出格式输出一个整数,表示截断方法数量。数据范围前六个测试点满足 1≤n≤10。所有测试点满足 1≤n≤105,−10000≤ai≤10000。输入样例1:41 2 3 3输出样例1:1输入样例2:51 2 3 4 5。原创 2023-02-22 11:10:33 · 837 阅读 · 0 评论
分享