- 博客(100)
- 收藏
- 关注
原创 第36次CCFCSP计算机软件能力认证总结
最终更新,这是正确的方法,on,利用了并查集跳过已经访问和计算过的元素,原代码bfs,对于每个状态我们重复遍历了已经访问的节点,如果我们使用并查集的合并功能,将当前i指向i+1,下一次我们通过find函数可以快速找到下一个没有访问过的点。未知,模拟能够通过样例,但是提交是0分,我的方法:暴力二分,过了80,复杂度是n**2logn。更新的代码仍然是错误方法:用队列存储每个次数的索引,即bfs,队列操作是扩展搜索,这个复杂度是n**2。5.估计是线段树之类的,不会,尝试暴力法,但是循环太多,直接放弃了。
2024-12-17 00:48:17
843
4
原创 吃豆人python 放松小游戏
1.空格暂停继续,0在游戏失败后,开始新的游戏2.上下左右移动,吃到食物得分加1,红色(敌人)会追击你,碰到游戏就结束了3.挑战一下最高分吧!
2024-07-06 21:33:19
1683
1
原创 贪吃蛇python,怎么拥有一个直接打开就放松玩的游戏
你需要不断地移动到食物的地点,吃掉它,你的长度会增加,也就是成绩在增加,同时,撞到墙和自己的概率会变大,难度一直上升,看看自己的记录怎么样吧!
2024-07-06 05:09:06
803
原创 整数拆分问题
/整数拆分问题:编写一个程序,找出一个正整数的所有可能拆分方式。例如,对于正整数 4,有以下拆分方式:1 + 1 + 1 + 1、1 + 1 + 2、1 + 3、2 + 2、4。
2024-06-06 15:03:38
414
原创 Dijkstra算法
/给定一个加权有向图,请写一个函数,返回从指定起始节点到目标节点的最短路径。可以使用Dijkstra算法或Bellman-Ford算法。
2024-06-06 14:38:19
273
原创 使用栈实现一个简单的计算器
else if (isdigit(expression[i]) || (expression[i] == '-' && (i == 0 || expression[i - 1] == '('))) { // 如果是数字或负号。ops.empty() && priority(ops.top()) >= priority(expression[i])) { // 当栈顶操作符优先级大于等于当前操作符时。else if (expression[i] == '(') { // 如果是左括号,将左括号压入操作符栈。
2024-06-06 14:29:15
1212
原创 prim算法
/ 用于记录顶点是否已经包含在最小生成树中。key[0] = 0;// 将第一个顶点作为 MST 的根。// 第一个顶点没有父节点。// 存放构造的最小生成树。int key[V];#define V 5 // 图中顶点的数量。
2024-06-06 13:57:58
445
原创 扫雷类图设计
创建了一个扫雷游戏的界面,包括菜单栏、加载游戏记录按钮以及游戏记录窗口。初始化一个扫雷游戏的棋盘,包括放置雷、计算周围雷数等功能。播放 on0lb-r6h2s.wav 文件。播放 6586c-0ubev.wav 文件。播放 hbe6d-cgk6g.wav 文件。播放音频文件,并在播放完成后释放锁。播放音频文件,并在播放完成后释放锁。游戏的棋盘状态,表示方块上的内容。标记标记为雷的方块的二维布尔数组。表示游戏每一次操作揭开的格子数。标记已揭示方块的二维布尔数组。显示游戏记录的文本区域。保存可变整数值的属性。
2024-06-06 13:28:01
800
1
原创 矩阵前缀和:找到窗口的*最多数量
ans=max(ans,pre[i+m-1][j+m-1]-pre[i-1][j+m-1]-pre[i+m-1][j-1]+pre[i-1][j-1]);
2024-06-05 14:38:54
382
原创 java--汽车租赁系统最后一天完成主类和异常类
if ((username.equals("张三") && password.equals("sd4578hg"))||(username.equals("李四") && password.equals("1265dfsa") )||(username.equals("王五") && password.equals("378627as"))){System.out.println("请选择操作(1. 查看车辆信息,2. 添加车辆,3. 修改车辆信息,4. 删除车辆,5. 查看营业额,6. 退出):");
2024-05-09 19:06:06
434
1
原创 java--汽车租赁系统:第三天完成VIP用户类
System.out.println("卡车(品牌:" + truck.getBrand() + ",每日租金:" + truck.getRentalPrice() +System.out.println("公共汽车(品牌:" + bus.getBrand() + ",每日租金:" + bus.getRentalPrice() +System.out.println("轿车(品牌:" + car.getBrand() + ",每日租金:" + car.getRentalPrice() +
2024-05-08 22:17:35
408
原创 java汽车租赁系统:第二天完成管理员类
System.out.println("卡车(品牌:" + truck.getBrand() + ",每日租金:" + truck.getRentalPrice() +System.out.println("公共汽车(品牌:" + bus.getBrand() + ",每日租金:" + bus.getRentalPrice() +System.out.println("轿车(品牌:" + car.getBrand() + ",每日租金:" + car.getRentalPrice() +
2024-05-07 14:33:51
292
原创 java汽车租赁系统:第一天完成车辆类
return "轿车:品牌:"+getBrand()+",每日租金:"+getRentalPrice()+",载客量:"+passengerCount;return "卡车:品牌:"+getBrand()+",每日租金:"+getRentalPrice()+",载货量:"+cargoCapacity;return "公共汽车:品牌:"+getBrand()+",每日租金:"+getRentalPrice()+",座位数:"+seatCount;
2024-05-06 14:42:16
563
3
原创 C++--学生信息管理系统
cout<<"学生的姓名是:"<<getName()<<","<<"学生的性别是:"<<getGender()<<","<<"学生的学号是:"<<getSno()<<endl;cout<<"学生的班级是:"<<getClass()<<","<<"学生的年级是:"<<getGrade()<<endl;cout<<stu[i].getName()<<"的"<<s<<"成绩是";cout<<"学生"<<getName()<<"的成绩如下"<<endl;cout << "2. 删除学生信息" << endl;
2024-05-05 15:33:51
776
原创 KMP算法-在文本串中查找模式串的起始位置
else if (j > 0) { // 字符失配,根据next跳过子串前面的一些字符。if (string[i] == patt[j]) { // 字符匹配,指针后移。if (j == patt.size()) { // 匹配成功。else { // 子串第一个字符就失配。int i = 0;int j = 0;return -1;
2024-04-22 12:51:23
394
原创 图的着色:给定一个图,要求为图中的节点进行着色,使得相邻的节点颜色不同,并且最小化所需的颜色数目
/ 如果相邻节点已经被着色,则将其颜色加入已使用颜色集合。// 存储相邻节点已经被使用的颜色。// 寻找可用的最小颜色。// 为当前节点着色。// 从第一个节点开始遍历。// 返回所需的最小颜色数。// 存储每个节点的颜色。// 贪心算法着色函数。
2024-04-22 00:40:52
433
原创 判断二分图:涂两种颜色,需要每一层结点的颜色一样,相邻层的相反
/ 用于记录节点的颜色,初始值设为 -1,表示未染色。给定一个图,要求判断它是否是一个二分图,即图中的节点可以划分为两个不相交的集合,使得每条边连接的两个节点分属于不同的集合。// 如果邻居节点已经被染色,并且颜色与当前节点相同,则不是二分图。// 将起始节点染色为颜色 0。// 如果邻居节点未被染色,则染色并入队。// 遍历当前节点的所有邻居节点。// 如果所有节点都被染色且满足条件,则是二分图。// 遍历所有节点,处理非连通图的情况。// 判断图是否为二分图。// 定义图的数据结构。
2024-04-22 00:01:30
384
原创 /*数组中的第 K 个最大元素: 找到未排序整数数组中的第 k 个最大元素。例如,给定数组 [3,2,1,5,6,4] 和 k = 2,返回 5。*/
/ 从第 k+1 个元素开始,与堆顶比较,若大于堆顶,则弹出堆顶,插入当前元素。// 返回堆顶元素即为第 k 大的元素。// 将前 k 个元素插入小根堆。
2024-04-21 23:34:24
427
原创 动态规划16--不同的二叉搜索树:给定一个整数 n,求生成所有由 1 ... n 为节点所组成的二叉搜索树个数。(参考代码随想录的视频)
给定一个整数 n,求生成所有由 1 ... n 为节点所组成的二叉搜索树个数。// dp[i] 表示节点数为 i 时的二叉搜索树个数。// dp[j - 1] 表示左子树的个数,dp[i - j] 表示右子树的个数。// 计算节点数为 i 时的二叉搜索树个数。
2024-04-20 22:23:31
311
1
原创 深度优先搜索:被围绕的区域:给定一个二维的矩阵,包含 ‘X‘ 和 ‘O‘(字母 O);找到所有被 ‘X‘ 围绕的区域,并将这些区域里所有的 ‘O‘ 用 ‘X‘ 填充。
给定一个二维的矩阵,包含 'X' 和 'O'(字母 O);找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。//解决方法:标记所有与外界连通的‘O’,这些不符合被'X'包围的情况。
2024-04-20 16:21:06
406
原创 动态规划15--解码方法:一条包含字母 A - Z 的消息通过以下方式进行了编码:‘A‘ -> 1 ‘B‘ -> 2...‘Z‘ -> 26//给定一个只包含数字的非空字符串,请计算解码方法的总数
/给定一个只包含数字的非空字符串,请计算解码方法的总数。
2024-04-20 15:45:03
260
原创 递归与回溯--N皇后问题(1种方案/所有方案)
给定一个大小为 n 的棋盘,要求放置 n 个皇后,使得它们互相之间不能相互攻击(即不能处于同一行、同一列或同一对角线上)。// 检查左上到右下的对角线。// 检查左下到右上的对角线。
2024-04-20 13:09:30
564
原创 下一个排列--找到更大的最小字典序
给定一个整数数组 nums,将该数组按照“下一个排列”的规则找到更大的最小字典序排列。// 从右向左找到第一个大于 nums[i] 的元素。// 输出: 1 3 2。// 交换 nums[i] 和 nums[j]// 反转从 i+1 开始到数组末尾的所有元素。// 从右向左找到第一个相邻升序的元素对。
2024-04-19 23:02:16
346
原创 外观数列--输出外观数列的第 n 项
/ 从数字 1 开始,序列中的每一项都是对前一项的描述。例如,当 n = 5 时,外观数列为 111221,因为第一项是 1,第二项是 11,(1个1)temp += to_string(count) + result.back();// 处理最后一组相同数字。// 第三项是 21(2个1),第四项是 1211,第五项是 111221。//给定一个正整数 n,输出外观数列的第 n 项。外观数列是一个整数序列,
2024-04-19 16:46:44
401
原创 Z 字形变换--返回以 Z 字形排列的字符串
/ 创建 numRows 个字符串,存储每行的字符。// 例如,输入字符串 "PAYPALISHIRING" 和 numRows = 3,返回 "PAHNAPLSIIGYIR"。// 当 numRows 为 1 时,直接返回原字符串。
2024-04-19 15:25:05
286
原创 生成螺旋排列矩阵1.正方形2.矩形
///给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针螺旋排列的 n x n 正方形矩阵。
2024-04-19 13:45:09
330
原创 贪心算法--给定一个正整数数组 arr,其中所有数字都不相同。找出其中最小的正整数,//使得它无法由 arr 中的元素相加得到
cout << "最小不可组成和为: " << minUnformedSum(arr) << endl;//使得它无法由 arr 中的元素相加得到。例如,给定数组[1, 2, 5],最小不可组成和为 4。// num 已经大于 min_sum + 1,跳出循环。//给定一个正整数数组 arr,其中所有数字都不相同。找出其中最小的正整数,min_sum += num;// 更新当前最小和。// 初始最小和为 1。
2024-04-19 00:28:54
272
原创 贪心算法--划分字母区间
/ 添加当前划分范围的长度到结果中。// 更新当前划分范围的结束位置。// 划分后的部分为["ababcbaca", "defegde", "hijhklij"]。// 更新下一个划分范围的起始位置。if (i == end) { // 如果当前位置是当前划分范围的结束位置。// 例如,给定字符串 S = "ababcbacadefegdehijhklij",//给定一个只包含小写字母的字符串 S,将字符串 S 划分为尽可能多的部分,// 使得每个字母最多只出现在一个部分中,并返回每个部分的长度。
2024-04-18 21:47:01
344
原创 贪心算法--跳跃游戏
/跳跃游戏:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。// 更新当前能够到达的最远位置。//跳跃游戏 II:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。// 已经可以到达最后一个位置。// 当前位置无法到达。// 你的目标是使用最少的跳跃次数到达数组的最后一个位置。
2024-04-18 03:33:55
180
原创 二叉树的锯齿形层序遍历:
/二叉树的锯齿形层序遍历:给定一个二叉树,返回其锯齿形层序遍历。// (即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。// 进行锯齿形层序遍历。// 锯齿形层序遍历函数。// 二叉树节点的定义。
2024-04-18 03:09:47
269
原创 盛最多水的容器--双指针法的应用
/ 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为(i, ai) 和(i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。//盛最多水的容器:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i, ai)。
2024-04-18 02:23:00
426
原创 最长连续序列--哈希集合
/ 将数组转换为哈希集合,以便快速查找元素。// 如果当前数字是一个连续序列的起点(即前一个数不存在于集合中),则开始计算连续序列的长度。//最长连续序列:给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。// 向后依次检查连续的元素是否存在于集合中,直到找到连续序列的末尾。// 更新最长连续序列的长度。
2024-04-18 00:40:46
458
原创 //二叉搜索树中第K小的元素:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。
public:int count;int ans;return ans;if(root!=NULL){count++;
2024-04-17 23:41:37
306
原创 动态规划14--乘积最大子数组
//乘积最大子数组:给定一个整数数组 nu,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。#include<iostream>#include<vector>using namespace std;int maxProduct(vector<int>& nums) { int n = nums.size(), res = nums[0]; vector<int>f(n , 0), g(n , 0); f[0] = nums[0], g[0] = nums[0];
2024-04-17 22:02:42
151
原创 按右界排序:无重叠区间:给定一个区间的集合,请找出这些区间中最多有几个互不重叠的区间。
/无重叠区间:给定一个区间的集合,请找出这些区间中最多有几个互不重叠的区间。
2024-04-17 21:01:49
290
原创 递归回溯--全组合
/ 递归生成以当前元素为起点的新组合。// 回溯,移除当前元素,继续尝试下一个元素。// 将当前元素加入组合。// 从当前位置开始,逐个选择元素加入当前组合,生成新的组合。// 主函数,生成整数数组的全组合。// 将当前组合加入结果。// 辅助函数,用于生成组合。
2024-04-17 16:22:13
181
空空如也
第36次CCF计算机软件能力认证的第二题:梦境巡查
2024-12-16
,(int x=a<b; x<c表达式的真值)和a<b&&b<c真值相同
2024-11-26
怎么一键复制代码csdn
2024-04-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人