自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 DAY7算法基础课——位运算(终于碰到个简单的)

第二种情况代码:例题:二进制中1的个数给定一个长度为 𝑛 的数列,请你求出数列中每个数的二进制表示中 1 的个数。

2024-05-14 17:20:12 199 1

原创 DAY7算法基础课——双指针算法

非常灵活的算法,我的脑子如同糊了浆糊一样僵硬。像一开始的快速排序就是双指针算法在一个数组上的应用,归并排序就是在两个数组上的双指针运用。在这里,双指针运算的核心思想就是优化朴素(暴力)算法,对于暴力做法来说通常需要两个循环做遍历,j也要从头遍历,所以时间复杂度是n方,但用双指针算法,通常只是i遍历,j根据题目设置条件,复杂度可以降到n。所以双指针运算主要是为了优化。例题——最长连续不重复子序列给定一个长度为 𝑛 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

2024-05-14 15:48:55 347 1

原创 DAY7算法基础课——差分(前缀和的逆运算)

差分的作用就是能够求对任意一个序列的某一段加上一个c之后的序列例题:输入一个长度为 𝑛 的整数序列。接下来输入 𝑚 个操作,每个操作包含三个整数𝑙,𝑟,𝑐,表示将序列中 [𝑙,𝑟] 之间的每个数加上 𝑐。请你输出进行完所有操作后的序列。

2024-05-14 15:26:02 125 1

原创 DAY6算法基础课——前缀和(一维/二维)

一维前缀和知识点总结:例题:输入一个长度为𝑛的整数序列。接下来再输入𝑚个询问,每个询问输入一对 𝑙,𝑟。对于每个询问,输出原序列中从第𝑙个数到第𝑟个数的和。输入格式第一行包含两个整数𝑛和𝑚。第二行包含𝑛个整数,表示整数数列。接下来𝑚行,每行包含两个整数𝑙和𝑟,表示一个询问的区间范围。输出格式共𝑚行,每行输出一个询问的结果。数据范围1≤𝑙≤𝑟≤𝑛,1≤𝑛,𝑚≤100000,−1000≤数列中元素的值≤1000输

2024-05-07 17:07:09 350

原创 DAY5算法基础课——高精度乘法

给定两个非负整数(不含前导 0) A 和 B,请你计算 A×B 的值。

2024-05-06 17:17:21 127

原创 DAY5算法基础课——高精度之大整数减法

给定两个正整数(不含前导 0),计算它们的差,计算结果可能为负数。

2024-05-06 16:28:54 143

原创 DAY4算法基础课——高精度之大整数加法

给定两个正整数(不含前导 0),计算它们的和。

2024-04-28 13:49:41 156

原创 C++常用STL——vector动态数组

1.vector是什么?数组长度可以变化的动态数组。2.vector的定义方式。5.访问动态数组的长度。10.动态数组初始化。

2024-04-27 14:47:48 145

原创 逆序对数量——暴力/归并

给定一个长度为 n𝑛 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i𝑖 个和第 j𝑗 个元素,如果满足 i<j𝑖<𝑗 且 a[i]>a[j]𝑎[𝑖]>𝑎[𝑗],则其为一个逆序对;否则不是。

2024-04-26 22:16:08 829

原创 DAY算法基础课——浮点数二分

【代码】DAY算法基础课——浮点数二分。

2024-04-26 20:29:37 89

原创 DAY3算法基础课——整数二分

给定一个按照升序排列的长度为 𝑛 的整数数组,以及 𝑞 个查询。对于每个查询,返回一个元素 𝑘 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回-1 -1。

2024-04-26 19:59:37 164

原创 DAY2算法基础课——归并排序

给定你一个长度为 𝑛 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。

2024-04-25 22:16:12 179 1

原创 DAY1算法基础课——快速排序

给定你一个长度为 n𝑛 的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。

2024-04-24 20:46:17 105

原创 第十四届蓝桥杯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 3411

原创 将 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 576

原创 输入一行数字字符,请用数组元素作为计数器来统计每个数字字符出现的个数。

题目要求:注意是:输入的为数字字符思路:因为输入的是字符,想要统计数字,则需要将数字字符转换成对应的数字,由ASCII码可知,只要减去48即可。再将其对应的数组下标中的元素自增。int main(){ int num[10]={0},number; char aa; printf("请输入一串数字,并以#结束:");while ((aa=getchar())!='#') //getchar()函数只能接受单个字符,输入数字也按字符处理...

2021-12-28 23:22:20 3032

原创 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 3001

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除