![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
R-G-B
计算机硕士,机器视觉、图像处理
展开
-
【C++】 C++ 编写 鸡兔同笼程序
鸡兔同笼”问题是一个经典的数学问题,要求根据总头数和总腿数来计算鸡和兔的数量。假设鸡有 2 条腿,兔有 4 条腿。该程序接受总头数和总腿数,并计算鸡和兔的数量。根据这两个方程,可以解出 x 和 y 的值。原创 2024-05-14 20:39:08 · 491 阅读 · 0 评论 -
C/C++ 数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t
常用数据类型 占用大小 有符号(char int flaoat double )、无符号(uchar uint ulong)、指针型、wchar_t、size_t、ptrdiff_t原创 2023-09-20 10:28:54 · 185 阅读 · 0 评论 -
【P64-71】结构体struct
定义结构体创建对象,有三种方式创建对象原创 2022-07-25 15:25:37 · 23 阅读 · 0 评论 -
string 存取字符操作 []和at() 越界抛出异常
] 越界不会抛出异常,直接报错。at方法 越界会抛出异常。原创 2022-08-21 16:29:09 · 250 阅读 · 0 评论 -
函数指针示例
【代码】函数指针示例。原创 2022-09-27 13:17:02 · 26 阅读 · 0 评论 -
C++STL库常用库函数总结
9.unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表。8.set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列。5.priority_queue, 优先队列,默认是大根堆。1.vector, 变长数组,倍增的思想。7.deque, 双端队列。10.bitset, 圧位。3.string,字符串。4.queue, 队列。6.stack, 栈。原创 2023-07-08 17:56:00 · 207 阅读 · 0 评论 -
C语言 常用库函数-表
调用数学函数时,要求在源文件中包下以下命令行:#include 调用字符函数时,要求在源文件中包下以下命令行:#include 调用字符函数时,要求在源文件中包下以下命令行:#include 调用字符函数时,要求在源文件中包下以下命令行:#include 调用字符函数时,要求在源文件中包下以下命令行:原创 2023-07-08 17:47:39 · 301 阅读 · 0 评论 -
C++常用库函数——表
头文件#include 或者 #include 头文件 #include 或者 #include 头文件#include 或者 #include 头文件 #include 或者 #include原创 2023-07-08 17:41:41 · 296 阅读 · 0 评论 -
C++常用库函数 7.字符串操作函数
函数名:_strnset。函数名:stricmp。函数名:strncmp。函数名:strncpy。函数名:strcat。函数名:strchr。函数名:strcmp。函数名:strcpy。函数名:strlen。函数名:strlwr。函数名:strrev。函数名:strstr。原创 2023-07-08 17:23:04 · 372 阅读 · 0 评论 -
C++常用库函数 6.进程控制函数
函数名:system。原创 2023-07-08 17:18:47 · 295 阅读 · 0 评论 -
C++常用库函数 5.输入和输出函数
函数名:fprintf。函数名:freopen。函数名:getchar。函数名:putchar。函数名:sprintf。函数名:fclose。函数名:ferror。函数名:fscanf。函数名:printf。函数名:sscanf。原创 2023-07-08 17:17:27 · 215 阅读 · 0 评论 -
C++常用库函数 4.数学函数
函数名:lrotl,lrotr。函数名:atan,atan2。函数名:nextafter。函数名:cos,cosh。函数名:difftime。函数名:sin,sinh。函数名:tan,tanh。函数名:printf。原创 2023-07-08 17:11:37 · 313 阅读 · 0 评论 -
C++常用库函数 3.数据转换函数
函数名:atof,atoi,atol。函数名:strtoul。函数名:tolower。函数名:toupper。函数名:strtod。函数名:strtol。原创 2023-07-08 17:02:08 · 388 阅读 · 0 评论 -
C++常用库函数 2.字符分类函数
函数名:isxdigit。函数名:isalpha。函数名:isascll。函数名:iscntrl。函数名:iscsymf。函数名:isdigit。函数名:isgraph。函数名:islower。函数名:isprint。函数名:ispunct。函数名:isspace。函数名:isupper。函数名:iscsym。原创 2023-07-08 16:47:29 · 641 阅读 · 0 评论 -
C++常用库函数 1.缓冲区操作函数
【代码】C++常用库函数 1.缓冲区操作函数。原创 2023-07-08 16:41:30 · 306 阅读 · 0 评论 -
枚举 enum
【代码】枚举 enum。原创 2022-09-28 20:41:40 · 33 阅读 · 0 评论 -
字符串数组,获取每一行首元素,组成的新字符串
【代码】字符串数组,获取每一行首元素,组成的新字符串。原创 2022-09-16 14:42:30 · 101 阅读 · 0 评论 -
C/C++ 二进制,八进制,十六进制输出格式 及转换
或者To disable deprecation, use _CRT_SECURE_NO_WARNINGS.在vs2022,VS2019里报错,不安全,使用_itoa()函数替代itoa。解决方法2:添加宏定义 _CRT_SECURE_NO_WARNINGS。关于itoa(num, s, 2);解决方法1:使用_itoa_s替代_itoa。结果还是报错,提示使用_itoa_s替代。根据提示使用_itoa()函数。原创 2022-09-06 00:25:33 · 4116 阅读 · 0 评论 -
sizeof()与strlen() 不相等
未初始化的情况下,用strlen是不可行的,因为strlen的唯一标准是找‘\0’,记住这个就能明确strlen会执行处什么值;初始化与否sizeof()的结果不变,但是反应的并非真实字符串长度而是所占空间大小,所以memset初始化的时候用sizeof较好char* 类型应特别注意,sizeof()计算出来的是指针大小,32位系统4字节,64位占8字节,与char*的字符串毫无关系,只有char[N]字符数组使用sizeof ()计算大小,原创 2022-09-03 22:29:00 · 40 阅读 · 0 评论 -
BM80 BM81买卖股票的最好时机(买卖一次、多次买卖)
说明:在第3天(股票价格 = 2)的时候买入,在第6天(股票价格 = 7)的时候卖出,最大利润 = 7-2 = 5 ,不能选择在第2天买入,第3天卖出,这样就亏损7了;假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益;假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益。时间复杂度:O(n),其中n为数组长度,遍历一次数组。......原创 2022-08-30 13:22:02 · 81 阅读 · 0 评论 -
BM70 兑换零钱(一)
①当前面值1元,还要凑齐剩下 5-1 = 4 元,图右表可知,凑齐4元最少需2枚硬币;②当前面值2元,还要凑齐剩下 5-2 = 3 元,图右表可知,凑齐3元最少需1枚硬币;③当前面值3元,还要凑齐剩下 5-3 = 2 元,图右表可知,凑齐2元最少需1枚硬币;即,dp[ i ] = 1 + dp[i - arr[0]],即上一状态解 +1;即,dp[ i ] = 1 + dp[i - arr[1]],即上一状态解 +1。即,dp[ i ] = 1 + dp[i - arr[1]],即上一状态解 +1。...原创 2022-08-26 17:04:06 · 70 阅读 · 0 评论 -
BM67 不同路径的数目(一)
时间复杂度:O(mn),其中m、n分别为矩阵的两边长,递归过程对于每个m最多都要经过每一种nnn。//不同走法路径在于往下和往右的组合情况,即在一堆往下和往右的序列中,每种排列的情况;//选择n−1个位置作为往右,即不同的走法有{m+n−2,n−1}=(m+n-2)空间复杂度:O(m+n),递归栈的最大深度为矩阵两边从m、n都到了1。//从矩阵左上角走到右下角,共需往下走m−1步,往右走n−1步,//序列一共有(m-1)+(n-1) = m+n−2个位置,时间复杂度:O(n),计算过程需要从1遍历到n。..原创 2022-08-26 11:11:08 · 61 阅读 · 0 评论 -
快速排序 QuickSort ,T= O(nlogn),S=O(logn)
推荐使用,代码好写,不易错)假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。序列的一个数作为基准数。选取第一个数6作为基准数。我们的目标是将6挪到序列中间的某个位置,假设这个位置是k。现在就需要寻找这个k,并且以第k位为分界点,左边的数都小于等于6,右边的数都大于等于6。类似下面这种排列:3 1 2 5 49 7 10 8。原创 2022-08-22 17:52:22 · 33 阅读 · 0 评论 -
BM34 判断是不是二叉搜索树
给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。二叉搜索树满足每个节点的左子树上的所有节点均严格小于当前节点且右子树上的所有节点均严格大于当前节点。思路:二叉搜索树,中序遍历是升序;只要当前结点值小于pre,就不是升序,就不是二叉搜索树;原创 2022-08-20 11:33:16 · 36 阅读 · 0 评论 -
BM28 二叉树的最大深度
step 1:对于每个节点,若是不为空才能累计一次深度,若是为空,返回深度为0.空间复杂度:O(n),最坏情况下,二叉树化为链表,递归栈深度最大为n;时间复杂度:O(n),其中nnn为二叉树的节点数,遍历整棵二叉树;时间复杂度:O(n),其中n为二叉树的节点数,遍历整棵二叉树;step 3:当前深度为两个子树深度较大值再加1。step 2:递归分别计算左子树与右子树的深度。空间复杂度:O(n),辅助队列的空间最坏为n;...原创 2022-08-17 15:02:42 · 40 阅读 · 0 评论 -
二叉树的遍历(前序、中序、后序、层次)
定义树的结构体。原创 2022-08-17 11:45:46 · 35 阅读 · 0 评论 -
字符指针、字符串、字符数组、字符串数组
分别为a b c d e f g h i j,同时也是用十个连续的存储空间存储。那么p+10指向这个数组第二维的首指针,所以输出字符串为Beijng。字符串数组,数组元素都是字符串。其实这个概念,等价于字符指针数组。p指向这个数组的首指针,即指向第一个字符串"China",字符指针一般用来指向一个字符,或者指向一个字符串。字符指针一般用来指向一个字符,或者指向一个字符串。字符串:以隐含的空字符\0结束,占用字节数+1,字符数组:不包含空字符,占用字节数不需+1;str[][10]定义为一个二维字符数组,..原创 2022-08-16 23:51:59 · 38 阅读 · 0 评论 -
#define 宏定义的用法 易错题
这一段代码的意思是说:sqr(x)的意思就是x的平方,而以后出现的sqr(x)就用(x) * (x)替换。宏定义在编译时会替换程序中的内容,是直接替换,不改变优先级。原创 2022-08-16 23:13:53 · 544 阅读 · 0 评论 -
递归return会停止吗
第二次次return f(4);第一次return f(2);第三次return f(7);此时满足if条件,返回n;下面在递归里加了输出语句;原创 2022-08-16 22:57:40 · 461 阅读 · 0 评论 -
统计一个十进制数 的二进制中有多少个1 和 0
通过函数func可知,x二进制中有多少位1就会进行多少次与计算。答案:2015=11111011111共10个1.原创 2022-08-16 12:53:07 · 691 阅读 · 0 评论 -
BM22 比较版本号
因为"1.1"的版本号相当于"1.1.0",第3位修订号的下标为0,小于1。version1 中下标为 0 的修订号是 “1”,version2 中下标为 0 的修订号是 “2”。因为"1.1"的版本号相当于"1.1.0",第3位修订号的下标为0,小于1,所以version1 < version2,返回-1。修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。说明:version2忽略前导0,为"1.1",和version相同,返回0。输入:“1.1”,“1.01”..原创 2022-08-15 20:34:07 · 44 阅读 · 0 评论 -
c++ 字符串与数字相互转换
int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。(表示 ascii to integer)把字符串转换成整型数的一个函数,,头文件为。不难看出,上面这些方法的输入均为const char *,即字符串,得到的输出为转化以后的各种数值类型。c++11以后,string类中提供了to_string方法,可以将各种类型数字转成字符串。把字符串转换成浮点数,头文件为。...原创 2022-08-15 18:20:49 · 10300 阅读 · 0 评论 -
归并排序 (BM20 数组中的逆序对)
如果3 > 1, 显然3后面的所有数都是大于1, 这里为 4 > 1, 明白其中的奥秘了吧。左区间arr[0]及以后的元素都可以和右区间的arr[2]逆序对,即左区间和右区间的元素arr[2]可以构成(mid-i+1)个逆序对。那么逆序数为(4,1),(4,2),(3,1),(3,2),同样的如果区间变为有序,比如[3,4] 和 [1,2]的结果是一样的,也就是说区间有序和无序结果是一样的。当然,如果区间有序,比如[3,4] 和 [1,2]输入:[1,2,3,4,5,6,7,0]输入:[1,2,3]....原创 2022-08-15 14:15:36 · 58 阅读 · 0 评论 -
BM14 链表的奇偶重排
/双指针形成奇、偶链,最后在连接在一起//奇数指针//偶数指针//偶数链表头指针}}时间复杂度:O(n),遍历一次链表的所有节点空间复杂度:O(1),常数级指针,无额外辅助空间。原创 2022-08-14 11:10:31 · 30 阅读 · 0 评论 -
冒泡排序 T=O(n^2),S=O(1)
j–) //从前向后比较,将最大的移动到最后面,后面逐渐有序,每趟比较n-1-i-1次。i < n - 1;i++) //n个数,需n-1趟冒泡。//j =n-1 从后向前比,最小值向前移。创建单链表,无头结点。创建单链表,有头结点。..............................原创 2022-08-13 17:37:51 · 28 阅读 · 0 评论 -
矩阵转置、逆置
注意,下三角与上三角交换;而不是整个矩阵交换。原创 2022-08-13 09:05:01 · 334 阅读 · 0 评论 -
BM97 旋转数组
一个数组A中存有 n 个整数,在不允许使用另外数组的前提下,将每个整数循环向右移 M( M >=0)个位置,即将A中的数据由(A0 A1 ……时间复杂度:O(n)O(n)O(n),三次reverse函数的复杂度都最坏为O(n)O(n)O(n)时间复杂度:O(n)O(n)O(n),三次reverse函数的复杂度都最坏为O(n)O(n)O(n)空间复杂度:O(1)O(1)O(1),没有使用额外的辅助空间。空间复杂度:O(1)O(1)O(1),没有使用额外的辅助空间。输入:6,2,[1,2,3,4,5,6]...原创 2022-08-12 18:28:08 · 37 阅读 · 0 评论 -
生产者/消费者模式
C++ 模拟生产者与消费者模式等生产者消费者模式(c++)原创 2022-08-09 15:49:41 · 26 阅读 · 0 评论 -
substr(string ,pos,len)和s.substr(pos,len)区别
若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾。pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s。substr(string ,pos,len)是sql函数,第一个位置下标是1,而不是0,pos从1开始;s.substr(pos,len)是C++函数,第一个位置下标是0,pos从0开始;1、SUBSTR(str,pos,len): 从pos开始的位置,截取len个字符。s2是sql用法:012;...原创 2022-08-08 13:16:58 · 127 阅读 · 0 评论 -
卡尔曼滤波
超声探测5米物体,返回的距离在5米范围波动。原创 2022-08-04 20:49:57 · 332 阅读 · 0 评论