- 博客(17)
- 收藏
- 关注
原创 DAY7算法基础课——位运算(终于碰到个简单的)
第二种情况代码:例题:二进制中1的个数给定一个长度为 𝑛 的数列,请你求出数列中每个数的二进制表示中 1 的个数。
2024-05-14 17:20:12 223 1
原创 DAY7算法基础课——双指针算法
非常灵活的算法,我的脑子如同糊了浆糊一样僵硬。像一开始的快速排序就是双指针算法在一个数组上的应用,归并排序就是在两个数组上的双指针运用。在这里,双指针运算的核心思想就是优化朴素(暴力)算法,对于暴力做法来说通常需要两个循环做遍历,j也要从头遍历,所以时间复杂度是n方,但用双指针算法,通常只是i遍历,j根据题目设置条件,复杂度可以降到n。所以双指针运算主要是为了优化。例题——最长连续不重复子序列给定一个长度为 𝑛 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。
2024-05-14 15:48:55 379 1
原创 DAY7算法基础课——差分(前缀和的逆运算)
差分的作用就是能够求对任意一个序列的某一段加上一个c之后的序列例题:输入一个长度为 𝑛 的整数序列。接下来输入 𝑚 个操作,每个操作包含三个整数𝑙,𝑟,𝑐,表示将序列中 [𝑙,𝑟] 之间的每个数加上 𝑐。请你输出进行完所有操作后的序列。
2024-05-14 15:26:02 145 1
原创 DAY6算法基础课——前缀和(一维/二维)
一维前缀和知识点总结:例题:输入一个长度为𝑛的整数序列。接下来再输入𝑚个询问,每个询问输入一对 𝑙,𝑟。对于每个询问,输出原序列中从第𝑙个数到第𝑟个数的和。输入格式第一行包含两个整数𝑛和𝑚。第二行包含𝑛个整数,表示整数数列。接下来𝑚行,每行包含两个整数𝑙和𝑟,表示一个询问的区间范围。输出格式共𝑚行,每行输出一个询问的结果。数据范围1≤𝑙≤𝑟≤𝑛,1≤𝑛,𝑚≤100000,−1000≤数列中元素的值≤1000输
2024-05-07 17:07:09 380
原创 C++常用STL——vector动态数组
1.vector是什么?数组长度可以变化的动态数组。2.vector的定义方式。5.访问动态数组的长度。10.动态数组初始化。
2024-04-27 14:47:48 163
原创 逆序对数量——暴力/归并
给定一个长度为 n𝑛 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i𝑖 个和第 j𝑗 个元素,如果满足 i<j𝑖<𝑗 且 a[i]>a[j]𝑎[𝑖]>𝑎[𝑗],则其为一个逆序对;否则不是。
2024-04-26 22:16:08 856
原创 DAY3算法基础课——整数二分
给定一个按照升序排列的长度为 𝑛 的整数数组,以及 𝑞 个查询。对于每个查询,返回一个元素 𝑘 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回-1 -1。
2024-04-26 19:59:37 193
原创 DAY2算法基础课——归并排序
给定你一个长度为 𝑛 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。
2024-04-25 22:16:12 193 1
原创 第十四届蓝桥杯pythonB组真题——2023
例如20322175、33220022都完全不包含2023,而20230415,20193213则含有2023(后者取第1,2,6,8个数位)>>> print(info.find('a')) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0。>>> print(info.find('a', 1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3。>>>print(info.find('abcac')) # 子串比原字符串长,返回-1。若不包含子串,返回-1。
2024-03-09 17:10:05 3512
原创 将 a 数组中相同的数据删得只剩一个,然后以每行 4 个数据的格式输出 a 数组。
可能会有疑问的点:想要删除数组中的相同数据,为什么要从最后两项开始,这个也很好理解,如果从头开始删,还要把后面的元素移位置补前面的位置,但是如果直接从后面开始删相同元素,就不需要上述的步骤了。补充%4d的知识:这个4即输出四位整形数,不够4位右对齐。# define M 10main() { int a[M],i,j,n; for(i=0;i<M;i++) scanf("%d",a+i); n=i=M-1;//从最后两项开始比
2021-12-29 21:23:27 598
原创 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符出现的个数。
题目要求:注意是:输入的为数字字符思路:因为输入的是字符,想要统计数字,则需要将数字字符转换成对应的数字,由ASCII码可知,只要减去48即可。再将其对应的数组下标中的元素自增。int main(){ int num[10]={0},number; char aa; printf("请输入一串数字,并以#结束:");while ((aa=getchar())!='#') //getchar()函数只能接受单个字符,输入数字也按字符处理...
2021-12-28 23:22:20 3045
原创 c语言求n的双阶乘
双阶乘的定义:当n是奇数时,n!为不大于n的所有奇数的乘积如:7!!=1*3*5*7.当n为偶数时表示不大于n的所有偶数的乘积(0除外)如:8!!=2*4*6*8.首先要判断n为奇数还是偶数,若为奇数,用for对i进行循环(这里的i为奇数循环即1,3,5,7.。。)循环后,令f=f*i;以此实现累乘,偶数同理。int main(int n, long f){ int i;f=1;if(n%2!=0) //判断n为奇数{for(i=1;i<n+1...
2021-10-27 22:21:55 3108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人