我想让一个4人坐在一个剧院里,让他们坐在一排或者彼此相邻的人最多。我有一个行数组,其中索引代表存储该行中可用座位数的行。如果我使用排序方法,那么它将排序可用的座位,但是我将失去它对应的行。显然,我可以通过它循环寻找我想要的最大座位数量,如果我没有找到,我可以减少我的数量等等,但这不是最佳的。如何在保留初始索引的同时对这些值进行排序?
行:1 2 3 4
可用:2 3 1 4
排序可用:4 3 2 1
相应行:4 2 1 3 < - 这就是我想要
//this is one way to do it but i want a better way
int[] row = {0, 2, 3, 1, 4};
double[] rowDouble = new double[row.length];
for (int i = 0; i < row.length; i++)
{
String rowString = Integer.toString(row[i]) + "." + Integer.toString(i);
rowDouble[i] = Double.valueOf(rowString);
}
Arrays.sort(rowDouble);
String sortedRowString = Arrays.toString(rowDouble);
sortedRowString = sortedRowString.substring(1, sortedRowString.length()-1);
System.out.println(sortedRowString);
String[] finalSortedRowString = sortedRowString.split(", ");
for (int i = finalSortedRowString.length-1; i > 0; i--)
{
System.out.println(finalSortedRowString[i].split("\\.")[1]);
}
你能多解释一下吗?你如何得到相应的行答案? – RNJ
只有4人可以坐着吗?输入 - 行,可用和排序可用 - 在有4人的情况下没有意义。无论如何,不是我。 – Cam
行保持可用值。所以当我从行[1]中调用1时,我得到2.我需要知道哪一行具有最多的可用值。所以我需要对可用值进行排序,但要跟踪它对应的行。 – zetologos