将数字映射到另一个数字



我有一个应用程序有 2 种模式:进入模式和返回模式

在"输入模式"中,当输入值时,它会增加位置,并且该位置与输入的数字相关联。

例如,输入值且 POS = 0:

23

80

67

34

该职位将是

23 = 1

80 = 2

67 = 3

34 = 4

如果有人在"返回模式"中输入值 34,您应该返回 4

如果有人在"返回模式"中输入值 23,您应该返回 1

这就像一个数字映射

尝试使用函数 例如,对于 4 个输入的值,需要一个三次函数

此三次函数将上述值与直线数相关联

y = -16.05735 + 1.1394 * x - 0.01966465 * x ^ 2 + 0.0001030451 * x ^ 3
4 = -16.05735 + 1.1394 * 34 - 0.01966465 * 34 ^ 2 + 0.0001030451 * 34 ^ 3

还要尝试遍历在名为 number [] 的数组中输入的数字

数字 [0] = 23

数字 [1] = 80

等。。

foo (int number_enter) {
for {int i = 0; i <number.length; i ++) {
if (number_enter == number [i]) {return i;}
}
}
foo (34); // return 4

我想知道是否有一种更快的方法来返回输入的数百万个数字的相关数字。

使用HashMap。

Map<Integer, Integer> map = new HashMap<>();
void addNumberAtPosition(int number, int position) {
map.put(number, position);
}
int getPositionOfNumber(int number) {
return map.getOrDefault(number, -1);//return -1 if number is not present.
}

相关内容

最新更新