算法3
文章平均质量分 66
liuhuangdi
西南油专的学生,欢迎评论交流,大家一起进步
展开
-
贪心算法-分发糖果,每个小朋友有一个评分,相邻的小朋友中评分高的必须得到更多的糖果,求最少需要多少糖果
/问题函数定义:int minCandies(vector<int>& ratings)vector<int> candies(n, 1);// 初始化糖果数为1。// 要求相邻的小朋友中评分高的必须得到更多的糖果。求最少需要多少糖果。//题目:有一群小朋友站成一列,每个小朋友有一个评分。//贪心算法:分发糖果。原创 2024-04-12 16:00:16 · 225 阅读 · 0 评论 -
动态规划9-给定一个由 0 和 1 组成的二维矩阵 matrix,找到只包含 1 的最大正方形,并返回其面积
如图所示,三个正方形框中的范围均为1,若以左或上+1,图中最左上角有一个区域0、1未知,不一定能成为最大边长,以最小边左上+1,一定在框中的范围,里面均为1,符合条件,所以要选最小边+1。//以i,j为右下角的最大边长。if (i == 0 || j == 0) {//第0行,第0列,边长最多只能1。//给定一个由 0 和 1 组成的二维矩阵 matrix,找到只包含 1 的最大正方形,并返回其面积。//matrix: 一个由 0 和 1 组成的二维矩阵,其中 1 表示陆地,0 表示水域。原创 2024-04-12 13:25:30 · 398 阅读 · 0 评论 -
矩阵相乘,并返回结果矩阵
/A第i行和B第j列元素依次相乘并累加。//给定两个矩阵 A 和 B,它们的维度分别是 m×n 和 n×p,编写一个函数实现矩阵相乘的功能,并返回结果矩阵。//函数接受两个二维向量 A 和 B 作为参数,表示两个矩阵。函数返回一个二维向量,表示相乘后的结果矩阵。//重新调整结果矩阵的大小。//A列数等于B行数。//先判断是否可以相乘。原创 2024-04-12 12:37:03 · 301 阅读 · 0 评论 -
动态规划8-有一堆盒子,每个盒子上都标有一个重量。现在需要将这些盒子分成两组,使得两组盒子的总重量尽可能接近。
cout原创 2024-04-12 02:28:21 · 260 阅读 · 0 评论 -
利用二分查找法在旋转有序数组中查找目标值
/给定一个升序排序的整数数组,该数组可能已经被旋转了。也就是说,数组中的一部分元素被移到了数组的末尾。编写一个算法来在这个旋转有序数组中查找给定的目标值,并返回目标值在数组中的索引。如果目标值不存在于数组中,则返回 - 1。// 判断哪一半是有序的。//题目:在旋转有序数组中查找目标值。//目标值 7 在索引:6。原创 2024-04-11 19:30:08 · 410 阅读 · 0 评论 -
图算法-在一个有向图中,找出从起点到终点的所有路径
/在一个有向图中,找出从起点到终点的所有路径。假设图中不存在环路。原创 2024-04-11 15:19:04 · 355 阅读 · 0 评论 -
贪心算法-假设你是一个采购员,以最低的总价购买到所需数量的商品。
/ 但是你只能从每个供应商那里购买一定数量的商品,且你的目标是以最低的总价购买到所需数量的商品。//假设你是一个采购员,需要从供应商那里购买商品。每个供应商提供的商品数量和价格都不同,// 编写一个函数来计算达到目标所需的最低总价。原创 2024-04-11 14:59:29 · 292 阅读 · 0 评论 -
两个字符串 s 和 t,判断 t 是否是 s 的一个字母异位词(包含相同的字母,但排列不同)1.数组2.哈希表3.排序
/ t中出现了s中没有的字符,或者某个字符出现次数超过s中的次数,直接返回false。//给定两个字符串 s 和 t,请编写一个函数来判断 t 是否是 s 的一个字母异位词(包含相同的字母,但排列不同)。// 如果字符串长度不同,直接返回false。// 如果字符串长度不同,直接返回false。// 如果字符串长度不同,直接返回false。//3.直接排序,时间复杂度O(nlogn),空间复杂O(1)//1.使用哈希表,时间复杂度O(n),空间复杂度O(n)// 遍历字符串s,统计字符出现次数。原创 2024-04-11 14:17:07 · 331 阅读 · 0 评论 -
双指针法:删除链表的倒数第 n 个节点,并且返回链表的头结点
/ 使用哑节点简化边界情况处理。// 处理链表长度小于 n 的情况。// 同时移动 low 和 fast 指针,直到 fast 到达链表尾部。//给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。//删除倒数第2个节点后的链表:1 -> 2 -> 3 -> 5。//链表:1 -> 2 -> 3 -> 4 -> 5。// fast指针先走 n+1 步。// 删除倒数第 n 个节点。原创 2024-04-11 13:46:01 · 335 阅读 · 0 评论 -
图算法-查找两个用户之间的最短路径1.BFS2.迪杰斯特拉
/ 存储起始节点到每个节点的距离,初始值设为无穷大。// 更新neighbor的前驱节点为current。// 存储每个节点的前驱节点,初始值设为-1。原创 2024-04-11 11:39:21 · 395 阅读 · 0 评论 -
实现一个并查集结构
int n = 5;// 设置并查集的大小。// 输出每个元素所在集合的代表元素。// 检查元素是否在同一个集合中。// 进行一系列的合并操作。原创 2024-04-11 00:25:35 · 325 阅读 · 0 评论 -
滑动窗口--找到最长的子字符串,其中最多只包含两个不同字符
/题目: 给定一个字符串,找到最长的子字符串,其中最多只包含两个不同字符。// 当窗口中不同字符的数量超过2时,移动左边界。// 更新最长子字符串的长度。原创 2024-04-10 23:26:10 · 298 阅读 · 0 评论 -
求解其阶乘的尾部零的个数(找到质因子5的个数)
/题目:给定一个非负整数 n,求解其阶乘的尾部零的个数。// 计算质因数 5 的个数。原创 2024-04-10 21:09:41 · 162 阅读 · 0 评论 -
字符串算法-找到其中不含重复字符的最长子串的长度(滑动窗口或暴力法)
/ 如果当前字符已经在窗口中出现过,则更新窗口的起始位置。//题目:给定一个字符串,找到其中不含重复字符的最长子串的长度。// 更新当前字符的最新位置。// 更新最大子串长度。//1.滑动窗口法(推荐O(n))//2.暴力遍历法O(n^2)原创 2024-04-10 19:38:53 · 408 阅读 · 0 评论 -
某社交网络中,给定一个用户列表和他们之间的好友关系,// 求出具有最多共同好友的用户对。(转换成邻接表)
/题目:某社交网络中,给定一个用户列表和他们之间的好友关系,// 求出具有最多共同好友的用户对。原创 2024-04-10 18:36:19 · 345 阅读 · 0 评论