- 题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 123 进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 解答 By 海轰 ... 题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 123 进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 解答 By 海轰 ...
- 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 12 限制: 0 <= 链表长度 <= 1000 解答 By 海轰 提交代码(伪节点) ListNode* mer... 题目描述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 12 限制: 0 <= 链表长度 <= 1000 解答 By 海轰 提交代码(伪节点) ListNode* mer...
- 题目描述 给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。 示例 1: 输入: [1,4,3,2] 输出: 4 解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4). 1234 提示: ... 题目描述 给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。 示例 1: 输入: [1,4,3,2] 输出: 4 解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4). 1234 提示: ...
- 题目描述 给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使 n - 1 个元素增加 1。 示例: 输入: [1,2,3] 输出: 3 解释: 只需要3次移动(注意每次移动会增加两个元素的值): [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4] 1234567... 题目描述 给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动将会使 n - 1 个元素增加 1。 示例: 输入: [1,2,3] 输出: 3 解释: 只需要3次移动(注意每次移动会增加两个元素的值): [1,2,3] => [2,3,3] => [3,4,3] => [4,4,4] 1234567...
- 测试代码 #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 号宝物才能拿...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签