- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 BFS:小e走迷宫
思路:这道题不仅要求判断迷宫是否有出路,还要求出出迷宫的最短时间(最短步数),即迷宫最短路问题,使用dfs的话由于不能走重复路径,会导致一条路走出去之后可能不是最短路径,所以使用bfs是最优解。想法就是通过一个队列来记录每一次走到该点的前点坐标,进行一层一层的遍历,再同时记录到达的每一点距离起点的最短距离,就能保证最后路径一定是最短路。
2024-03-06 14:39:43 426 1
原创 动态规划 存在性dp:数的种类
思路:这道题可以通过每一步的规划进而推出全局总共可以组成的数字的个数,即从取到零个数字为止可以组成一个数字0到取到n个数字为止可以组成m个数字,下图意为取到i个数字为止是否可以组成数字j,使用布尔型数组统计次数,1代表可以组成。当上一步可以组成的数字在下一步多取一个数时依然可以组成,并且在增加了a[i]这个数字后,第j+a[i]个也可以被组成(这时j的取值是上一步中所有为true的j范围)接下来做进一步简化,使用类似于数组的一个二进制结构bitset,只可以存放二进制数,可以大量节省空间。
2024-02-27 22:41:19 520
原创 贪心算法:力扣45 跳跃游戏Ⅱ
思路:该题与传统贪心不同的是,在跳跃过程中并不能每一步都按最大值进行跳跃,因为求的是到达终点的最少跳跃步数,可以使用最大覆盖范围的思想进行思考,即每一步跳跃之前,先求出在这一步覆盖范围之内的步数中可以跳出的最大的跳跃距离,当覆盖范围大于或等于数组长度-1时,就代表达到最后的终点。返回到达 nums[n - 1] 的最小跳跃次数。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。输入: nums = [2,3,1,1,4]输入: nums = [2,3,0,1,4]
2024-02-25 22:38:17 554
原创 c++类与类间的关系
类A就是类B的直接基类,类A是类C、类D的间接基类......。那么上面这个写法呢,是可行的但是不好,因为每条狗里面都有一个主人,如果一个人养了多条狗,修改这个主人的信息,他的每条狗内主人的信息都需要修改,太麻烦。继承:在定义一个新类B时,如果类B与已有的类A 相似(拥有类A的全部特性),那么就可以把类A当作基类,类B当作类A的一个派生类(也可叫做子类)。
2023-10-27 22:58:19 169 1
原创 C++运算符的重载
重载的本质是函数重载。他可以赋予运算符多重含义,使运算符作用于不同类型的数据时有不同类型的行为。运算符重载的具体格式:返回值类型operator 运算符 (形参表)......
2023-10-24 12:26:35 135
原创 C++类的总结
所有类的定义都是class+类名,后面跟{};一个类里面应该有的成员:1.三种访问修饰符:private(私有成员),public(公有成员),protect(保护成员);2.构造函数,析构函数,普通成员函数;3.成员变量。所有的成员变量和成员函数都是用来起到修饰对象的作用,即都是对象的属性。int ID;这是一个学生类的定义,私有化内的三个成员变量皆为学生的属性。1、成员函数的定义与c语言的普通函数定义无异,都是。
2023-10-17 23:03:19 122 1
空空如也
代码无法显示,求指导
2022-03-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人