java - 将整数 1-max 映射到 1-1,000,000 的 100 个整数
问题描述
我需要将 Java 整数从 1-max 范围映射到 1-1,000,000 范围,但只使用目标范围中的 100 个特定(非线性)值。这 100 个值是:
1-10(所以前 10 个值映射到它们自己)
然后是 5 的:15、20、25 ... 到 100,
然后是 50 的:150、200、250 ... 到 1,000
等等,最终值是 900,000 950,000 和 1,000,000
我无法完全理解比一袋嵌套 if/else-if 更优雅的东西。
该解决方案对时间/周期不敏感。
解决方案
构建一个元素数组,然后查找结果。您只需要构建一次阵列。
List<Integer> list = new ArrayList<>();
// note we start at 0 so indexes work as expected.
for(int i=0;i<10;i++) list.add(i);
for(int i=10;i<100;i+=5) list.add(i);
etc...
Integer result = list.get(input);
推荐阅读
- python - 如何以 django 形式获取 TypedChoiceField 的值(不是键)?
- python - 下载 zip 文件时出错 TensorFlow Keras
- python - 在 Python 中交换列表中的值
- oracle - SQL Plus 变量字符串
- javascript - 对于每个过滤器。通过 id 呈现数据库
- mysql - 有没有linux命令可以查找mysql数据库的内存消耗?
- django - 在 Django 中单击按钮时调用函数
- python - 由于单词中的附加字符,如何删除与黑名单不完全匹配的单词?
- javascript - 是否可以将 MongoDB 用作 html 项目的数据库?
- reactjs - 无法获取 Typeahead 值