gpt4 book ai didi

java - 返回未排序列表中第 n 个最高值的索引

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:50:37 24 4
gpt4 key购买 nike

我已经编写了以下代码,现在正试图找出实现四个评论中所解释内容的最佳方法:

    Integer[] expectedValues = new Integer[4];

for (int i = 0; i <= 3; i++) {
expectedValues[i] = getExpectedValue(i);
}

int choice = randomNumGenerator.nextInt(100) + 1;
if (choice <= intelligence) {
// return index of highest value in expectedValues
} else if (choice <= intelligence * 2) {
// return index of 2nd highest value in expectedValues
} else if (choice <= intelligence * 3) {
// return index of 3rd highest value in expectedValues
} else {
// return index of lowest value in expectedValues
}

这样做的优雅方式是什么?我不需要将期望值保存为数组 - 我很乐意使用任何数据结构。

最佳答案

您可以创建一个包含索引的新数组并对值进行排序 - 在半伪代码中它可能看起来像这样(待改编):

int[][] valueAndIndex = new int[n][2];

//fill array:
valueAndIndex[i][0] = i;
valueAndIndex[i][1] = expectedValues[i];

//sort on values in descending order
Arrays.sort(valueAndIndex, (a, b) -> Integer.compare(b[1], a[1]));

//find n-th index
int n = 3; //3rd largest number
int index = valueAndIndex[n - 1][0];

关于java - 返回未排序列表中第 n 个最高值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43661454/

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