Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中检索子数组中给定范围的第k个元素?_Java_Arrays_Data Structures - Fatal编程技术网

如何在Java中检索子数组中给定范围的第k个元素?

如何在Java中检索子数组中给定范围的第k个元素?,java,arrays,data-structures,Java,Arrays,Data Structures,我有一个数组,其中的值是: int[] elements = {4 , 7 , 3 , 6 ,2 ,5 ,1}; 用户输入的是(k,i,j),k表示范围(i,j)内的第k个索引。 如果用户的输入是(3,0,6),则答案必须是3,因为(0,6)范围内的第三个索引是3 如何检索第k个索引并打印索引的值?您可以按如下操作: public class Main { public static void main(String[] args) { int[] elements

我有一个数组,其中的值是:

int[] elements = {4 , 7 , 3 , 6 ,2 ,5 ,1};
用户输入的是(k,i,j),k表示范围(i,j)内的第k个索引。

如果用户的输入是(3,0,6),则答案必须是3,因为(0,6)范围内的第三个索引是3


如何检索第k个索引并打印索引的值?

您可以按如下操作:

public class Main {

    public static void main(String[] args) {
        int[] elements = { 4, 7, 3, 6, 2, 5, 1 };
        printKth(elements, 3, 0, 6);
        printKth(elements, 3, 1, 5);
        printKth(elements, 2, 2, 6);
    }

    static void printKth(int[] element, int k, int i, int j) {
        if ((i + k - 1) < element.length)
            System.out.println(element[i + k - 1]);
    }
}

一种方法是创建自己的函数,使用
begin
end
索引从原始函数中提取一个子数组

import java.util.Arrays;
public static int[] subArray(int[] array, int beg, int end) {
    return Arrays.copyOfRange(array, beg, end + 1);
}
然后使用下面的函数访问
k-1
元素

int[] subarray = subArray(arr, beg, end);
System.out.println(subarray[k - 1]);

元素[k+i]
?(假设它在范围内)@Eran
elements[i+k-1]
@YCF\u L我想确定范围,然后检索它,如何获取范围?您尝试了什么?请添加您的代码。您的意思是
intresult=Arrays.copyOfRange(elements,i,j)[k-1]谢谢你的快速回复。这是正确的。是的,另一种方法是这样。谢谢
int[] subarray = subArray(arr, beg, end);
System.out.println(subarray[k - 1]);