
算法基础
文章平均质量分 55
本专栏主要基础的算法
coding_ksy
这个作者很懒,什么都没留下…
展开
-
【算法基础20-单调栈】
给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则输出 −1。用单调递增栈,当该元素可以入栈的时候,栈顶元素就是它左侧第一个比它小的元素。第二行包含 N个整数,表示整数数列。第一行包含整数 N,表示数列长度。1≤数列中元素≤109。原创 2023-08-13 19:30:59 · 253 阅读 · 0 评论 -
【算法基础19-模拟队列】
现在要对队列进行 M个操作,其中的每个操作 3 和操作 4都要输出相应的结果。接下来 M行,每行包含一个操作命令,操作命令为。操作的查询结果为一个整数,表示队头元素的值。操作都要输出一个查询结果,每个结果占一行。第一行包含整数 M,表示操作次数。原创 2023-08-13 10:03:34 · 182 阅读 · 0 评论 -
算法基础18-数组模拟栈
栈:先进后出队列:先进先出栈push xpopemptyquery现在要对栈进行 M个操作,其中的每个操作 3 和操作 4都要输出相应的结果。原创 2023-07-25 20:05:04 · 191 阅读 · 0 评论 -
【算法基础17-双链表】
题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…比如在a节点的左侧插入一个节点等,均可利用上面的函数进行实现,只需要改变上面的函数的参数即可。现在要对该链表进行 M次操作,进行完所有操作后,从左到右输出整个链表。2. 在节点a的右边插入一个数。是用来存放该节点的左节点的地址。是用来存放该节点的右节点的地址。2.在节点a的右边插入一个数x。是用来存放节点的数值。原创 2023-07-25 15:38:39 · 133 阅读 · 0 评论 -
【算法基础16-单链表】
题目中第 kk 个插入的数并不是指当前链表的第 kk 个数。例如操作过程中一共插入了 nn 个数,则按照插入的时间顺序,这 nn 个数依次为:第 11 个插入的数,第 22 个插入的数,…第 nn 个插入的数。现在要对该链表进行 MM 次操作,进行完所有操作后,从头到尾输出整个链表。-> 邻接表:主要用于存储图和树。第一行包含整数 MM,表示操作次数。3.将x插入到下标是k的节点后面。共一行,将整个链表从头到尾输出。: 主要用于优化某些问题。原创 2023-07-25 01:06:06 · 113 阅读 · 0 评论 -
【算法基础15-区间合并】
给定 n 个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3]和 [2,6] 可以合并为一个区间 [1,6]。原创 2023-07-15 12:13:01 · 356 阅读 · 0 评论 -
【算法基础14-(离散化)】
i || a[i]!= a[i - 1])//如果是第一个元素或者该元素不等于前一个元素,即不重复元素,我们就把它存到数组前j个元素中。2. 去重:alls.earse(unique(alls.begin(),alls.end()),alls.end());1. 排序:sort(alls.begin(),alls.end())原创 2023-07-14 01:22:19 · 283 阅读 · 0 评论 -
【算法基础13-位运算(两种常见的位运算)】
判断n的二进制表示的第k位是多少假设:n = 15 = (1111)2:先把第k位移到最后一位,即x = n>>k:看个位数是几,x&1:k位置上的数为,n>>k&1lowbit(x)的操作:返回的是x的最后一位1给定一个长度为 nn 的数列,请你求出数列中每个数的二进制表示中 11 的个数。原创 2023-07-13 11:45:13 · 122 阅读 · 0 评论 -
【算法基础12-双指针算法】
(1)分别在两个数组上图示如下:(2)在一个数组之上举例:abcbcdekf最长连续不重复子序列给定一个长度为 n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。原创 2023-07-10 22:37:51 · 552 阅读 · 0 评论 -
【算法基础11-子矩阵的和】
【代码】基础算法-子矩阵的和。原创 2023-07-08 20:56:48 · 992 阅读 · 0 评论 -
【算法基础10-差分矩阵】
基础算法-差分矩阵、acwing算法基础课原创 2023-07-10 11:38:50 · 1106 阅读 · 0 评论 -
【算法基础9-差分】
b[l] + c,效果使得a数组中 a[l]及以后的数都加上了c(红色部分),但我们只要求l到r区间加上c, 因此还需要执行 b[r+1] - c,让a数组中a[r+1]及往后的区间再减去c(绿色部分),这样对于a[r] 以后区间的数相当于没有发生改变。给定区间[l ,r ],让我们把a数组中的[ l, r]区间中的每一个数都加上c,即 a[l] + c , a[l+1] + c , a[l+2] + c ,,,,,, a[r] + c;Step5 画图理解公式。首先让差分b数组中的。原创 2023-07-10 10:14:30 · 120 阅读 · 0 评论 -
【算法基础8-基础算法-前缀和】
【代码】前缀和。原创 2023-07-08 19:04:17 · 201 阅读 · 0 评论 -
【算法基础6--高精度算法】
【代码】高精度算法。原创 2023-07-07 00:40:54 · 428 阅读 · 0 评论 -
【算法基础5-二分算法】
在计算机科学中,二分搜索(binary search),也称折半搜索(half-interval search)、对数搜索(logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。原创 2023-07-06 23:24:40 · 345 阅读 · 0 评论 -
【算法基础4-归并排序的应用—逆序对的个数】
本文章主要讲了归并排序的应用原创 2023-07-06 16:29:23 · 333 阅读 · 0 评论 -
【算法基础3-排序算法之归并排序】
本文章主要给出了归并排序算法的模板,以及相关的简单介绍原创 2023-07-06 11:57:59 · 652 阅读 · 0 评论 -
【算法基础2-趣说选择排序】
在计算机科学中,排序是一项基本操作,它帮助我们将数据按照一定的规则重新排列,以便更方便地进行搜索、查找或其他操作。在解决数组排序问题之前,让我们先了解一种简单的排序算法:选择排序。原创 2023-07-01 10:41:17 · 579 阅读 · 0 评论 -
【算法基础1-排序快速排序】
算法之排序算法-快速排序原创 2023-04-08 00:08:47 · 133 阅读 · 0 评论