算法笔试模拟题精解之“小明的数学作业”

简介: 关键在于对题目的了解,数学老师让小明求的是n个数中最长的等差数列长度,可以用dp[i][j]表示以a[j]和a[i]为结尾的等差序列的最长长度。

在线编程介绍

阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding

本文为大家介绍其中的 129题:小明的数学作业,具体如下:

题目描述

等级:容易
知识点:DP、尺取法
查看题目:小明的数学作业

众所周知,小明是一个数学小能手,有一天数学老师给了小明一个长度为n(2<=n<=5000)的序列,其中第i个数是ai(0<=ai<=1e9),数学老师想知道这个序列排序后,其中最长的等差子序列的长度是多长,聪明的你能帮小明解决这个问题吗?

其中等差子序列的定义为:一个长度为length的等差序列b1、b2……blength,并且序列b是序列a排序后的子序列。

请注意子序列的定义:在原来序列中找出任意数量,任意位置的元素,在不调换这些选出的元素前后顺序的情况下,组成的新序列,称为原序列的子序列。

第一行为序列的长度n(2<=n<=5000),接下来一行是n个数,其中第i个数是ai(0<=ai<=1e9)。

输出一行,最长的等差子序列b的长度length。

示例1
输入:
6
[0,1,3,5,6,9]
输出:
4

解题思路:

首先来理解一下题目:数学老师让小明求的是n个数中最长的等差数列长度,可以用dpi表示以a[j]和a[i]为结尾的等差序列的最长长度。

因为我们肯定要保存一个公差作为状态量,但是直接枚举0-1e9又不现实。

所以我们巧妙的设计出了这个状态,使得我们的公差就被a[i]-a[j]表示了。

因此我们的转移就应该是在三个数中转移。 即a[i],a[j],a[k],i根据等差数列的性质,若a[i],a[j],a[k]构成等差序列,那么a[i]+a[k]=2*a[j];每次转移更新答案即可。

是不是有思路了呢,点击链接立刻答题:>>查看题目:129.小明的数学作业

另有在线编程3月份比赛正式开启!机械键盘等你拿!

893-90-1.jpg

相关文章
|
8月前
|
存储 安全 算法
|
8月前
|
人工智能 算法 测试技术
【数学】【排序】【C++算法】3027人员站位的方案数
【数学】【排序】【C++算法】3027人员站位的方案数
|
8月前
|
算法 测试技术 C++
【动态规划】【数学】【C++算法】1449. 数位成本和为目标值的最大数字
【动态规划】【数学】【C++算法】1449. 数位成本和为目标值的最大数字
|
8月前
|
存储 算法 Serverless
【C/C++ 数据结构】深入探索数据结构中算法复杂度:从C++和数学的视角
【C/C++ 数据结构】深入探索数据结构中算法复杂度:从C++和数学的视角
85 0
|
4天前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
29 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
2月前
|
算法 调度
基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
车间作业调度问题(JSSP)通过遗传算法(GA)和模拟退火算法(SA)优化多个作业在并行工作中心上的加工顺序和时间,以最小化总完成时间和机器闲置时间。MATLAB2022a版本运行测试,展示了有效性和可行性。核心程序采用作业列表表示法,结合遗传操作和模拟退火过程,提高算法性能。
|
4月前
|
算法 调度
作业调度算法_先来先服务算法_短作业优先算法_高响应比优先算法
本文介绍了作业调度算法,包括先来先服务(FCFS)、短进程优先(SJF)和高响应比优先(HRRN)算法。通过分析进程的到达时间和所需CPU服务时间,计算进程的开始时间、完成时间、平均周转时间和平均带权周转时间,以评估不同算法的性能。FCFS适合长作业,SJF适合短作业,而HRRN则综合了两者的优点。
186 12
|
3月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
45 0
|
5月前
|
算法
算法设计与分析作业
这篇文章是关于算法设计与分析的作业,其中包含了两个算法实现:一个是使用分治算法实现的十进制大整数相乘(包括加法、减法和乘法函数),并进行了正确性和健壮性测试;另一个是使用快速排序思想实现的分治查找第K小元素的程序,并分析了其平均和最坏时间复杂度。
算法设计与分析作业
|
5月前
|
DataWorks 算法 调度
B端算法实践问题之配置脚本以支持blink批处理作业的调度如何解决
B端算法实践问题之配置脚本以支持blink批处理作业的调度如何解决
57 1

热门文章

最新文章