动态规划:四键键盘

本文探讨了在四键键盘上输入字符串的问题,重点在于如何通过动态规划算法来优化C-V键的使用。文章指出,对于按'A'键的情况,状态转移相对简单,但在需要使用'C-V'时,需要考虑之前的'C-A'和'C-C'操作。最优策略是连续多次'C-V',并用动态规划的方法确定'C-A C-C'的操作位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述

对于「按 A 键」这种情况,就是状态 i - 1 的屏幕上新增了一个 A 而已,很容易得到结果:

dp[i] = dp[i - 1] + 1; // 按 A 键,就比上次多一个 A 而已

但是,如果要按 C-V,还要考虑之前是在哪里 C-A C-C 的。

刚才说了,最优的操作序列一定是 C-A C-C 接着若干 C-V,所以我们用一个变量 j 作为若干 C-V

的起点(应该看作C-C的位置)。那么 j - 1 、j 操作就应该是 C-A C-C 了:

public int maxA(int N) {
   
   
    int[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值