如何将3个数字映射到一个值(动态编程)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将3个数字映射到一个值(动态编程)相关的知识,希望对你有一定的参考价值。
使用动态编程思想,我想存储3个数字(x,y,z),它们映射到值(v)。
对于x,y,z的每个新值,我想检查它的值是否已经存在。 (避免重新计算)
x,y,z的顺序并不重要。那是1,1,2和2,1,1等应该映射到相同的值。
使用for循环计算x,y,z(2个嵌套循环为x + y + z = n(给定))
我该怎么做到这一点?它需要自定义数据结构吗?
谢谢
用C ++编码
答案
首先对这三个值进行排序,因为它们的相对序列并不重要,然后将它们与特殊字符#
连接起来以生成字符串。
例如,在你的情况下1,1,2和2,1,1将首先被排序为相同的序列1,1,2然后连接它们将给我们1#1#2
- 一个字符串然后键将是唯一的,以满足你的需求。
如果忽略其他任何事情,也许你应该在这里提供更详细的要求。
以上是关于如何将3个数字映射到一个值(动态编程)的主要内容,如果未能解决你的问题,请参考以下文章
如何将非统一的 int 范围映射到 C# 中的某些字符串值?