- 测试代码 #include<iostream> using namespace std; const int maxsize=4; int visited[maxsize]={0}; template<class datatype> class mgraph{ public: mgraph(datatype a[],int n, int... 测试代码 #include<iostream> using namespace std; const int maxsize=4; int visited[maxsize]={0}; template<class datatype> class mgraph{ public: mgraph(datatype a[],int n, int...
- 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 12 限制: 1 <= 数组长度 <= 50000 解答 By 海轰 运行结果 int majorityElement(v... 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 12 限制: 1 <= 数组长度 <= 50000 解答 By 海轰 运行结果 int majorityElement(v...
- 题目描述 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 123 示例 2: 输入: n... 题目描述 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 123 示例 2: 输入: n...
- Dijkstra算法思想: Dijkstra算法又称单源最短路,求一个点到图中其它点的最短路。 假设有两个集合 S 和... Dijkstra算法思想: Dijkstra算法又称单源最短路,求一个点到图中其它点的最短路。 假设有两个集合 S 和...
- 题目描述 给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 1 说明: 递归法很简单,你可以使用迭代法完成此题吗? 解答 By 海轰 提交代码(递归) vector<int> ans; vector<int> preorder(Node* root) { i... 题目描述 给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 1 说明: 递归法很简单,你可以使用迭代法完成此题吗? 解答 By 海轰 提交代码(递归) vector<int> ans; vector<int> preorder(Node* root) { i...
- 题目链接~~> 做题感悟:这题竟然用二分真心没想到,看来不管什么算法只要会用都很强大。 解题思路:先确定两两合并后最小值和最大值,min= a[0]+b[0] ,max=a[n-1]+b[m-1] 这很明显,然后再min~max中二分枚举值,然后查看枚举的这个值是否是第 k 大。 代码: #include<stdio.h>#include<io... 题目链接~~> 做题感悟:这题竟然用二分真心没想到,看来不管什么算法只要会用都很强大。 解题思路:先确定两两合并后最小值和最大值,min= a[0]+b[0] ,max=a[n-1]+b[m-1] 这很明显,然后再min~max中二分枚举值,然后查看枚举的这个值是否是第 k 大。 代码: #include<stdio.h>#include<io...
- 题目链接~~> 做题感悟:这题主要考想法,其实是让求最长单调递增子序列。 解题思路:首先读题要仔细题目说每个数组里的数两两不同,说明下标有用,数不超过100000,且数组范围100000,说明得开数组且时间为1000MS说明只要一次遍历即可。好,步入正题:先把第一个数组的值所对应的下标记录下来,第二个数组的值在第一个数组中找(O(1)的复杂度),依次记录下表,然后求... 题目链接~~> 做题感悟:这题主要考想法,其实是让求最长单调递增子序列。 解题思路:首先读题要仔细题目说每个数组里的数两两不同,说明下标有用,数不超过100000,且数组范围100000,说明得开数组且时间为1000MS说明只要一次遍历即可。好,步入正题:先把第一个数组的值所对应的下标记录下来,第二个数组的值在第一个数组中找(O(1)的复杂度),依次记录下表,然后求...
- 题目链接~~> 做题感悟:今天学习了一下KMP虽然还处于迷茫状态,但是照着模版很容易就把这题A了。 解题思路:KMP 裸题(可以用作模版)。 代码: #include<stdio.h>#include<iostream>#include<map>#include<stack>#include<string&g... 题目链接~~> 做题感悟:今天学习了一下KMP虽然还处于迷茫状态,但是照着模版很容易就把这题A了。 解题思路:KMP 裸题(可以用作模版)。 代码: #include<stdio.h>#include<iostream>#include<map>#include<stack>#include<string&g...
- 题目链接~~> 做题感悟:这题只要把一维的树状数组扩展到二维就可以了。 解题思路:树状数组插线问点:先简化一下,如果是一维的树状数组的插线问点让区间 [ a,b ] 同时加 x ,可以先让 [ 1,b ] + 1 ,再让 [ 1 ,a-1 ] -1 ,跟前缀和一样这样区间 [ a,b ] 就实现了 +1 ,但这时数组 c [ ]&nbs... 题目链接~~> 做题感悟:这题只要把一维的树状数组扩展到二维就可以了。 解题思路:树状数组插线问点:先简化一下,如果是一维的树状数组的插线问点让区间 [ a,b ] 同时加 x ,可以先让 [ 1,b ] + 1 ,再让 [ 1 ,a-1 ] -1 ,跟前缀和一样这样区间 [ a,b ] 就实现了 +1 ,但这时数组 c [ ]&nbs...
- 文章目录 一、说明 二、C语言代码实现 三、运行效果 一、说明 设计要求:实现课程设计题目的随机抽签 运行环境:Dev-C++ 总体思路:先声明一个exam数组,用于存放题目编号,并定义栈。调用 initarray 将 exam 数组初始化,里面的值为从 1 到n,然后生成数量与 exam 数组长度相等的随机数,把... 文章目录 一、说明 二、C语言代码实现 三、运行效果 一、说明 设计要求:实现课程设计题目的随机抽签 运行环境:Dev-C++ 总体思路:先声明一个exam数组,用于存放题目编号,并定义栈。调用 initarray 将 exam 数组初始化,里面的值为从 1 到n,然后生成数量与 exam 数组长度相等的随机数,把...
- 题目链接~~> 做题感悟:这题一看就知道要用状态压缩,本题和HDU 1429 胜利大逃亡(续)差不多。 解题思路:你可以把宝物压缩为二进制,例如:01001 代表你已经拿过 1 号和 4 号宝物了 0 代表相应的宝物没拿。用同样的方法把拿某个物品的前提条件也映射成二进制。假如你现在遇到 3 号宝物,如果3号宝物的前提条件是拿到 1 号 和 4 号宝物才能拿... 题目链接~~> 做题感悟:这题一看就知道要用状态压缩,本题和HDU 1429 胜利大逃亡(续)差不多。 解题思路:你可以把宝物压缩为二进制,例如:01001 代表你已经拿过 1 号和 4 号宝物了 0 代表相应的宝物没拿。用同样的方法把拿某个物品的前提条件也映射成二进制。假如你现在遇到 3 号宝物,如果3号宝物的前提条件是拿到 1 号 和 4 号宝物才能拿...
- 1.下面的( )不是良好编码的原则。D A 在开始编码之前建立单元测试 B 建立一种有助于理解的直观布局 C 确保注释与代码完全一致 D 保持变量名简短以便代码紧凑 2.下面的( )是错误的。C A在程序设计中使用括号以改善表达式的清晰性 B不要修补不好的程序,要重新写 C在程序设计中应尽可能对程序代码进行优化 D不要在注释中重复描述代码 3.为了保证软件的质量,使... 1.下面的( )不是良好编码的原则。D A 在开始编码之前建立单元测试 B 建立一种有助于理解的直观布局 C 确保注释与代码完全一致 D 保持变量名简短以便代码紧凑 2.下面的( )是错误的。C A在程序设计中使用括号以改善表达式的清晰性 B不要修补不好的程序,要重新写 C在程序设计中应尽可能对程序代码进行优化 D不要在注释中重复描述代码 3.为了保证软件的质量,使...
- 题目链接~~> 做题感悟:这题只能说很“ 经典 ” 。 解题思路:题意就是给你一个二行N例的一面墙,在墙上涂颜色,问你最少粉刷多少次,能达到给你的目标墙的状态,(每次粉刷只能粉刷出一个矩形,矩形可以是一行N例,也可以是二行N例); 思想:广度优先搜索(因为找最短路) 状态表示: 状态用二制位表示。例如当N=4时,就用8位二进制数表示... 题目链接~~> 做题感悟:这题只能说很“ 经典 ” 。 解题思路:题意就是给你一个二行N例的一面墙,在墙上涂颜色,问你最少粉刷多少次,能达到给你的目标墙的状态,(每次粉刷只能粉刷出一个矩形,矩形可以是一行N例,也可以是二行N例); 思想:广度优先搜索(因为找最短路) 状态表示: 状态用二制位表示。例如当N=4时,就用8位二进制数表示...
- 题目描述 数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 12 示例 2: 输入:[3,2] 输出:-1 12 示例 3: 输入:[2,2,1,1,1,2,2] 输出:2 12 说明: 你有办法在时间复杂度为 O(N),空间复杂度为 O(... 题目描述 数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。 示例 1: 输入:[1,2,5,9,5,9,5,5,5] 输出:5 12 示例 2: 输入:[3,2] 输出:-1 12 示例 3: 输入:[2,2,1,1,1,2,2] 输出:2 12 说明: 你有办法在时间复杂度为 O(N),空间复杂度为 O(...
- 题目链接~~> 做题感悟:开始想到用 2^n 这样来求子序列但是这样会多算很多(因为你不知道前面比它小的数的顺序是怎样的),很纠结看解题报告+自己理解用了一个晚上。 解题思路:注意:这题如果出现 1 1 1 结果也是 7,并不是 3 。这题需要用到DP 的思想,假设dp[ i ] 为 i 时a[i] 所形成的不递减子序列,那么dp[ i ] ... 题目链接~~> 做题感悟:开始想到用 2^n 这样来求子序列但是这样会多算很多(因为你不知道前面比它小的数的顺序是怎样的),很纠结看解题报告+自己理解用了一个晚上。 解题思路:注意:这题如果出现 1 1 1 结果也是 7,并不是 3 。这题需要用到DP 的思想,假设dp[ i ] 为 i 时a[i] 所形成的不递减子序列,那么dp[ i ] ...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中 -
华为云开发者AI素养直播课·第四期2026/08/28 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;吴松明-华为云AI开发者案例开发专家
EduSwarm 是一个基于多智能体框架构建的 AI 教师团队协作平台:把备课、上课、作业、批改、学情等教学环节,交给多位专职 AI Agent(课件师、出题官、批改师、学情分析师等)协作完成。教师从「亲力亲为」变成「做决策」,学生只需凭课堂码加入即可实时跟课。
回顾中
热门标签