【发布时间】:2016-12-02 19:12:53
【问题描述】:
我有 2 个数组,一个是输入 pins names,另一个是他们的 actual numbers。
const char *pins[]={"d1","d2","d3","d4","d5","o1","o2","o3","o4"};
const int pinsNumbers[9]={1,2,19,4,14,6,12,15,17};
当我得到一个输入 "d3" 时,我想找到对应的 - 19 。
- 有没有更有效的方法来保存这些“匹配”?
- 如何使用输入循环遍历引脚阵列并尽可能高效地找到匹配项?
【问题讨论】:
-
比什么更有效的方法?你还没有实现任何东西。
-
有效的保存方法。我也想知道如何以一种好的方式实现它。
-
使用地图而不是 2 个数组。
-
没有实际限制就没有“有效的解决方案”。
pins数组有多长?您多久会查询一次密码? -
正如@m0skit0 所写,您需要一个从字符串到整数的映射。它通常使用哈希表(平均为
O(1))或二分查找(平均为O(logN))来完成。但如果它是一个相当短的数组,您可以简单地遍历pins数组并找到索引。
标签: c arrays search binary-search