招银网络科技 笔试、面试

本文介绍了招银网络科技笔试中的一道题目,该题目涉及动态规划解码方法。题目要求计算给定状态码组合能构成的不同状态码个数。通过分析合法数值规律和组合方式,采用动态规划算法求解,给出转移方程并提供了代码实现。

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

1. 笔试

1.1 题目

有16种状态码分别是1-16,本来应该记为{1, 1, 1, 3},但是由于粗心记为{1113},题目:求出给定的输入如{1113}能够构成不同状态码的个数。{1113}可以构成{1, 1, 1, 3}, {11, 1, 3}, {1, 11, 3}, {1, 1, 13}, {11, 13}这5种状态码组合,因此输出5。

输入

4   // 第一行表示4个输入

1  1  1  3 // 第二行表示4个输入的值

输出

1.2 思路分析

此题类似力扣91题 解码方法https://leetcode-cn.com/problems/decode-ways/

1. 分析合法的数值规律

合法的状态为1-16,

即一个状态要么是1-9的任意一个数;

要么是十位数只能是1,个位数为0~6的任意一个数。

2. 组合方式

本题共有2种组合方式,

假设对于前n-1个数,他们组合后记为Y_{n-1}, 简称为Y,

那么对于第n个数x来说,可能的组合为Y,x  或者 Yx:

1)Y, x代表x为个位数的状态,x取1~9中的任意一个均可以,此处x加在前n-1个数的组合后面,

2)Yx表示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值