Leetcode-1420 生成数组

该博客探讨了一个算法,用于在给定整数数组中找到最大元素,搜索成本为k。通过动态规划方法,计算了在n个元素、最大值不超过m的情况下,满足条件的数组数量。示例展示了不同输入参数下的结果,并提供了具体的解决方案代码。

描述

给你三个整数 n、m 和 k 。下图描述的算法用于找出正整数数组中最大的元素。

func maxIn(arr []int) (int, int) {
    max_v := 0
    max_i := 0
    sc:=0
    for i:=0;i<len(arr);i++{
        if max_v < arr[i] {
            max_v = arr[i]
            max_i = i
            sc++
        }
    }
    return max_v, max_i
}

请你生成一个具有下述属性的数组 arr :

arr 中有 n 个整数。
1 <= arr[i] <= m 其中 (0 <= i < n) 。
将上面提到的算法应用于 arr ,search_cost 的值等于 k 。
返回上述条件下生成数组 arr 的 方法数 ,由于答案可能会很大,所以 必须 对 10^9 + 7 取余。

 

示例1

输入:n = 2, m = 3, k = 1
输出:6
解释:可能的数组分别为 [1, 1], [2, 1], [2, 2], [3, 1], [3, 2] [3, 3]

示例 2

输入:n = 5, m = 2, k = 3
输出:0
解释:没有数组可以满足上述条件

示例 3

输入:n = 9, m = 1, k = 1
输出:1
解释:可能的数组只有 [1, 1, 1, 1, 1, 1, 1, 1, 1]

示例 4

输入:n = 50, m = 100, k = 25
输出:34549172
解释:不要忘了对 1000000007 取余

示例 5

输入:n = 37, m = 17, k = 7
输出:418930126

提示

1 <= n <= 50
1 <= m <= 100
0 <= k <= n


来源:力扣(LeetCode)
链接:https:leetcode-cn.com/problems/build-array-where-you-can-find-the-maximum-exactly-k-comparisons
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法

// 关键元素的位置问题
// 按关键元素所在位置分类
// 状态变量:n,m,k

const mod =1e9+7


func numOfArrays(n int, m int, k int) int {
	// f[n][i][k]:n个元素,元素最大值i,search_cost为k的切片数量
	f := make([][][]int, n+1)
	for i:=0;i<n+1;i++{
		f[i] = make([][]int, m+1)
		for j:=0;j<m+1;j++{
			f[i][j] = make([]int, k+1)
		}
	}
	for n1:=1;n1<=n;n1++{
		for k1:=1;k1<=k;k1++{
			for i:=1;i<=m;i++{
				f[n1][i][k1] = i* f[n1-1][i][k1]
				for j:= 1; j<i;j++{
					f[n1][i][k1] += f[n1-1][j][k1-1]
				}
				if n1 == 1 && k1 == 1 {
					f[n1][i][k1] = 1
				}
				f[n1][i][k1] %= mod
			}
		}
	}
	res := 0
	for i:=1;i<=m;i++{
		res += f[n][i][k]
		res %= mod
	}
	return res
}

 

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值