- 博客(8)
- 收藏
- 关注
原创 STL之集合
一、集合定义:把一些元素按照某些规律放在一起,就形成了一个集合。比如说每个班级就是一个集合,竞赛班也是一个集合,每间学校也是一个集合,等等。特点:确定性、互异性、无序性。1.确定性表示一个元素要么在这个集合内,要么不在。(这个很水很容易理解)2.互异性表示一个集合当中所有元素都是不一样的,不存在在一个集合中,出现两个一模一样的元素3.无序性表示一个集合当中的元素没有顺序,就像班级调座位一样,谁都可以坐前排,谁都可以坐后排,是平等地位的。
2023-12-08 15:16:33
1038
原创 STL专辑之STL之映射
map翻译为映射,是STL中的常用容器。其实,数组就是一种映射,比如:int a[100];就是定义了一个int到int的映射。而a[5]=25;就是把5映射到25。数组总是将int类型映射到其它基本类型(称为数组的基类型),这同时也带来了一个问题,有时候我们希望把string映射成一个int,数组就不方便了。这时就可以使用map,map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。二、映射的用途1)需要建立字符(串)与整数之间的映射。
2023-11-25 22:20:57
876
原创 STL专辑之STL栈
栈也是一种操作(或者说运算)受到限制的特殊线性表。其插入和删除操作都限制在表的一端进行,这一端被称为“栈顶(top)”,相对的另一端称为“栈底(bottom)”。两种操作:1、“进栈(PUSH)”或者“压栈”2、“出栈(POP)”。栈的特点是:“先进后出(FILO,First In Last Out)”二、stack容器stack翻译为栈,是STL中实现的一个“后进先出”的容器,它提供了栈操作中的很多命令,非常方便。如:访问栈顶元素:top()删除栈顶元素:pop()
2023-11-11 22:50:24
98
1
原创 递推与公式解法做题目《最小值》
题目描述小明今天遇到一个数学题:有 n 行总共 n*(n+1)/2 个数叠成了一个数塔,从上往下数第 i 行里面恰好有 i 个数。给定 k,你需要从中拿走恰好 k 个数,使得拿走的数的最小值最小。一个数能被拿走当且仅当它左上角和右上角都没有数或者那个数已经被拿走了。小明现在求助于你,请你帮他编程实现。输入第一行两个正整数 n 和 k。接下来 n 行,第 i 行有 i 个正整数 ai1,ai2,......aii,其中aij表示从上往下第 i 行从左往右第 j 个数。输出。
2023-11-04 22:56:57
41
1
原创 前缀和详解(2)——二维前缀和
建立在之上,如果我们要求一个矩阵内一个任意子矩阵的数的和,我们就可以用二维前缀和。我们可以感性的将其理解为建立在二维平面上的前缀和,如上图:红色区域所有数的和即为二维前缀和中点(i,j)的值。
2023-10-28 22:54:15
243
原创 二分查找的实现方法
二分查找知识点当我们要从一个序列中查找一个元素的时候,最快想到的方法就是顺序查找法(即:从前到后依次查找)。但这种方法过于无脑,就是暴力的把每个元素都排查一遍。元素个数少的时候还行,一旦元素个数多起来,效率非常低下。(有一个前提是序列是顺序的)
2023-10-14 14:27:56
42
1
原创 尺取法的实现方法
记 (l,r)两个端点为一个序列内以l为起点的最短合法区间,如果r随l的增大而增大的话,我们就可以使用尺取法。//求第y数到第x-1数之间的和。因为r随 l增大而增大,所以 r只有 n次变化的机会,所以时间复杂度为O(n)舒服一点的理解是,一条虫子在爬,一下伸直身体,一下蜷缩身体(好像也没好多少)//如果和大于c,证明(b[i]=b[i-1]+a[i];3.如果第二步中无法满足条件,则终止,否则更新结果。if(s==c&&y>x) //如果和为c。
2023-10-06 11:55:15
21
空空如也
编程之路的心理障碍!!想听解决方法
2023-10-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人