- 博客(20)
- 收藏
- 关注
原创 C++---vector容器
是STL容器中的一种常用的容器,由于其大小(size)可变,常用于数组大小不可知的情况下来替代数组。vector容器与数组十分相似,被称为动态数组。时间复杂度为O(1)。数组数据通常存储在栈中,vector数据通常存储在堆中。动态扩展不是在原空间后加入空间,而是寻找更大空间,将数据拷贝新空间,释放新空间。头文件:#include <vector>迭代器类似于指针,提供了对象的间接访问,但获取迭代器并不是使用取地址符。如果将指针理解为元素的“地址”,那么迭代器可以理解为元素的“位置”。
2024-04-12 08:56:54
1362
原创 C++力扣Leetcode算法5--搜索
岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。岛屿的面积是岛上值为 1 的单元格的数目。:记录每个遍历过的节点的父节点,若一个节点被再次遍历且父节点不同,则说明有环。一般来说,深度优先搜索类型 的题可以分为主函数和辅函数,主函数用于遍历所有的搜索位置,判断是否可以开始搜索,如果 可以即在辅函数进行搜索。对于四个方向的遍历,可以创造一个数组 [-1, 0, 1, 0, -1],每相邻两位即为上右下左四个方向之一,-1,0是向上。
2024-04-11 08:21:34
417
原创 C++力扣Leetcode算法4--排序算法
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。你可以按 任意顺序 返回答案。本人写,提交超出时间限制。
2024-04-10 10:55:02
541
1
原创 C++力扣Leetcode算法3--二分查找
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。书中最优解// 主函数// 这里需要减1位// 辅函数r = mid;// 辅函数r = mid;本人写,提交超出时间限制。
2024-04-08 10:30:00
345
原创 C++力扣Leetcode算法2--双指针
双指针遍历方向相同且不相交,称为滑动窗口,通常用于区间搜索双指针遍历方向相反,用来搜索,待搜数组通常是排好序的指针函数,返回类型是指针的函数函数指针,指向函数的指针快慢指针通常用于链表环,一个指针走一步,一个指针走两步,快指针走到尽头就是没环路,走到第一次相遇,快指针从头走,走一步,第二次相遇,就是环点。
2024-04-07 11:19:09
984
原创 C++力扣Leetcode算法1--贪心算法
看的书自学 《高畅Leetcode刷题》 过程很痛苦 不建议学习 不会的地方没有解答之处 到处查找很困扰 浪费时间错误的地方欢迎大家相互交流 能改正最好啦 蟹蟹贪心算法就是啥都想要,从局部最优解达到全局最优解,前提,局部最优解结果互不干扰做题时可以考虑遍历,选择,排序以下试题用到的头文件和命名空间。
2024-04-04 23:56:46
854
1
原创 C++基础7
常规函数:执行函数调用指令后,存储该指令地址,函数参数复制到堆栈。跳到另一个(标记)函数起点的内存单元,执行函数代码,结束后返回,就是再跳到指令处。内联函数:编译器将相应的函数代码替换函数调用,程序无需跳到另一个位置处执行代码,运行速度比常规函数快,但需要占用更多内存。C函数主要是按值传递,按引用传递是C++新特性。程序没有提供函数原型,但C++原型仍在起作用,是将函数首次使用前出现的整个函数定义充当原型。C++提供的函数新特性有内联函数、按引用传递变量、默认的参数值、函数重载(多态)、模板函数。
2024-03-18 21:15:27
412
1
原创 C++基础6
使用const来修饰数组声明了一个数组常量,是对数组里面数据的一种保护,当试图修改一个被const修饰的数组内容时,编译时会产生错误。条件允许情况下,将指针形参声明为指向const的指针,这样可以避免由于无意间修改数据而导致的编程错误。函数原型是一条语句,获取原型的最简单办法,赋值函数定义中的函数头,并添加分号。即使两个不同函数有相同变量也是可行的,这样的变量称为自动变量。用于接收传递值的变量称为形参,传递给函数的值称为实参。将指针(包括数组名)加1,实际上是加一个与指针指向类型相同的长度相等的值。
2024-03-10 21:12:47
368
1
原创 C++基础5
通常, cin无法识别枚举类型,所以switch语句将int值与枚举量进行比较时,会把枚举量提升为int,while也是。操作数不需要具有相同的类型,但它们必须是布尔值、整数或指针类型。测试条件为false,跳过语句块1,执行语句块2,为true,执行语句块1,跳过语句块2。continue语句使程序跳过当前循环之后的循环体,执行下一轮循环。测试条件为false,跳过语句块,为true,执行语句块。语句末尾之间的每个语句,包括 default。break语句使程序跳到循环后面的语句执行。
2024-03-09 22:36:53
949
1
原创 C++基础4
返回开始执行后所用的系统时间,用来建立延时循环。先循环初始化(loop initialization),然后,循环测试(loop test)是否小于5,结果为true,执行循环体(loop body)输出。如果在语句块中定义一个新变量,只有在程序执行该语句块中的语句时,变量才存在,执行完语句块,变量被释放。先执行循环体,再判断测试表达式,决定是否继续执行循环,条件为false,循环终止。首先,程序计算圆括号内的测试条件表达式,若为true,则执行循环体中的语句,执行完再评估条件,直到条件false为止。
2024-03-08 23:17:39
906
1
原创 C++基础2
FILE_ 是一个预定义的宏,表示当前源文件的文件名。实际上,程序将找一块能够存储整数的内存,将该存储单元标记为braincont,将5复制到该单元中,在运行程序时使用braincount来访问该存储单元,用&运算符检索barincount的内存地址。其次,头文件climits中包含整数限制的信息,例如:INT_MAX为int的最大取值, CHAR_BIT为字节的位数。另一种指数表示法,如3.45E+6指的是3.45乘1000000,6个零,右移6位,大小写皆可,小数点可以省略,加号可以省略。
2024-03-06 22:38:11
926
1
原创 C++基础1
在某些语言中,没有返回值的函数被称为过程或子程序(subroutine),有返回值的函数称为函数。(1)函数头作用 函数与调用它的函数之间的接口。例子中,接口从int开始,不是void,函数给调用他的函数返回一个值,叫返回值(return value),且返回整数值。6.25是发送给函数的信息被称为参数,得到结果2.5发送给调用函数(被调用的函数称为调用函数),返回的值称为函数的返回值。第一步:使用文本编辑器编写程序代码,称源代码,一般源代码文件扩展名有C,cc,cxx,cpp,c++
2024-03-05 18:28:14
358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人