gpt4 book ai didi

java - Array find value using index逻辑面试题

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:30:40 26 4
gpt4 key购买 nike

下面给出了无限长度的数组,它有自然数,因为它可以是无限长度的:

int[] myArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3 ......}; 

//在 10 处需要 1、0,在 11 处需要 1、1,在 12 处需要 1、2 等等......

index 0 = >  value 0 = >  number 0
index 1 = > value 1 = > number 1
index 2 = > value 2 = > number 2
index 3 = > value 3 = > number 3
index 4 = > value 4 = > number 4
index 5 = > value 5 = > number 5
index 6 = > value 6 = > number 6
index 7 = > value 7 = > number 7
index 8 = > value 8 = > number 8
index 9 = > value 9 = > number 9
index 10 = > value 1 = > number 10
index 11 = > value 0 = > number 10
index 12 = > value 1 = > number 11
index 13 = > value 1 = > number 11
index 14 = > value 1 = > number 12
index 15 = > value 2 = > number 12

....
....
....

索引 9 的值应该是 9,但是在索引 10 而不是值 10 它应该是 1 & 同样在索引 11 值应该是 0 ,然后在索引 12 值应该是 1 等等......

假设对于索引值 10,我们得到的结果为 1,对于值 11,我们得到的结果值为 0。

我们必须编写我们的逻辑来通过传递索引值来获取值,索引可以从 0 到 10000000。

我们不能直接使用数组来获取特定索引处的值,我们必须编写如下逻辑:

public int getValue(int index){

int value = 0;

// logic to find the the value

return value;
}

我尝试了以下方法来获取通过索引的结果,但它一直有效到两位数,即 99。(直到索引 189)。但是对于三位数及更多,我们必须改变逻辑。

public static int myMethod(int index){
System.out.println("index : " + index);

if(index <= 9){
return index;
}

boolean even = (index % 2) == 0;

int num = 0 ;
char res = 0;
if(even){
num = index - ((index - 10) / 2);
System.out.println("num " + num);

res = new Integer(num).toString().charAt(0);
}else{

index = index -1;
num = index - ((index - 10) / 2);
System.out.println("num 22 : " + num);
res = new Integer(num).toString().charAt(1);
}

int result = new Integer(res+"");

System.out.println(result);
return result ;
}

最佳答案

这个序列被称为 Champernowne constant .

基本的方法是计算所有1位、2位、3位等数字的总长度。一旦知道哪个数字范围是合适的,就可以确定范围内的确切数字,然后数字中的确切数字。

高效算法的完整细节可以在 this pdf 中找到。 .

关于java - Array find value using index逻辑面试题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45400498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com