算法笔记day05

devtools/2024/10/23 23:57:19/

目录

1.最小公倍数

2.最长连续的子序列

3.字母收集


1.最小公倍数

求最小公倍数_牛客题霸_牛客网

算法思路:

这就是一道数学题,a,b的最小公倍数 = a * b / 最大公约数。

使用辗转相除法,求a,b的最大公约数。

#include <iostream>
using namespace std;int gcb(int a, int b) //求最大公约数
{if(b == 0) return a;return gcb(b , a % b);
}int main() 
{int a, b;cin >> a >> b;cout << a * b / gcb(a,b) << endl;return 0;
}

2.最长连续的子序列

数组中的最长连续子序列_牛客题霸_牛客网

 算法思路:

将数组排序,双指针遍历数组求最长即可

class Solution {
public:int MLS(vector<int>& arr) {sort(arr.begin(), arr.end());int count = 0;int ret = 0;for(int i = 1; i < arr.size(); i++){if(arr[i] - arr[i-1] == 1)// 说明是连续的{count++;}else if(arr[i] - arr[i-1] == 0)// 相等的{continue;}else //不连续{ret = max(ret, count);//更新最大值 count = 0;}}ret = max(ret, count);//特殊处理 1 2 3 4 5 6这种情况return ret + 1;}
};

3.字母收集

字母收集_牛客题霸_牛客网

算法思路:

这是一道动态规划、

1.状态表示:dp[i][j] 表示到达i,j位置的最大分数。

2.状态转移方程:直接分析最后一步,想到达dp[i][j]我只有两种情况,第一种从dp[i-1][j]到达,第二种是从dp[i][j-1]到达,dp[i][j]只需要取这两种情况的最大值 + i,j位置的分数。

处理一些细节问题,dp[i][j] = max(dp[i-1][j], dp[i][j-1]); + sorc, i和j是数组的边界怎么办??

输入的时候就从 i = 1 开始输出,就想到与空出最外层的一圈0.

#include <iostream>
using namespace std;const int N = 510;
char g[N][N];
int dp[N][N];int n, m;
int main() 
{cin >> n >> m;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){cin >> g[i][j];}}for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){int soce = 0;if(g[i][j] == 'l') soce = 4;else if (g[i][j] == 'o') soce = 3;else if (g[i][j] == 'v') soce = 2;else if (g[i][j] == 'e') soce = 1;dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + soce;}}cout << dp[m][n] << endl;return 0;
}
// 64 位输出请用 printf("%lld")


http://www.ppmy.cn/devtools/128297.html

相关文章

MySQL IN子句:数据顺序与条件顺序不一致情况探究(二)

2. 临时表/派生表的使用 另一个常见的方法是使用一个临时表或派生表&#xff08;也称为子查询&#xff09;来存储IN子句中的 ID&#xff0c;并为这些 ID 添加一个序号&#xff0c;然后在外层查询中根据这个序号进行排序。 使用示例&#xff1a; -- 新建临时表 CTE WITH Rout…

git tag 用法

文章目录 git tag 用法1 概述2 基本用法2.1 创建标签2.1.1 创建轻量级标签2.1.2 创建附注标签 2.2 查看标签2.3 推送标签到远程仓库2.4 删除标签2.5 根据标签拉取代码2.6 注意事项 3 参考资料 git tag 用法 1 概述 git tag 是 Git 版本控制系统中的一个命令&#xff0c;用于为…

学习记录:js算法(七十三):跳跃游戏

文章目录 跳跃游戏思路一&#xff1a;贪心算法思路二&#xff1a;动态规划思路三&#xff1a;递归 记忆化搜索思路四&#xff1a;广度优先搜索 (BFS)思路五&#xff1a;深度优先搜索 (DFS) 跳跃游戏 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个 下标 。数…

鹏哥C语言81-82---指针和数组+二级指针+指针数组

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> //--------------------------------------------------------------------------------------------------------5. 指针和数组 数组&#xff1a;一组相同类型元素的集合 指针变量&…

几何算法系列:空间实体体积计算公式推导

1.前言 面积和体积的计算是常见和基础的几何算法话题&#xff0c;面积和体积通常作为面或构件的基本信息参与相关的建模、计算、分析等过程。 有关面积的计算&#xff0c;可以参考博主此前的文章&#xff0c; 一种误差较小的轮廓面积计算算法_轮廓面积计算原理-CSDN博客文章…

如何高效解锁业务数据价值:多云时代应该怎么构建新一代数据平台架构

本文是“2021 InfoQ 年度技术盘点与展望”系列文章之一&#xff0c;由 InfoQ 编辑部制作呈现&#xff0c;重点聚焦大数据领域在 2021 年的重要进展、动态&#xff0c;希望能帮助你准确把握 2021 年大数据领域的核心发展脉络&#xff0c;在行业内始终保持足够的技术敏锐度。 “I…

养老院网站毕设计算机毕业设计基于SpringBootSSM框架

目录 1.概述 2.设计思路 2.1 开发背景 2.2 项目需求 3. 需求分析 3.1‌用户需求分析‌ 3.2‌功能需求‌ 3.3非功能需求‌ 4. 数据库设计 1.概述 本文旨在设计并实现一个功能全面、用户友好的养老院网站&#xff0c;以提供养老院管理、老人信息管理、服务预约与跟踪等…

现今 CSS3 最强二维布局系统 Grid 网格布局

深入学习 CSS3 目前最强大的布局系统 Grid 网格布局 Grid 网格布局的基本认识 Grid 网格布局: Grid 布局是一个基于网格的二位布局系统&#xff0c;是目前 CSS 最强的布局系统&#xff0c;它可以同时对列和行进行处理&#xff08;它将网页划分成一个个网格&#xff0c;可以任…