【发布时间】:2021-05-28 13:32:17
【问题描述】:
我需要创建一个伪随机唯一整数数组,这些整数已经按升序排列,而不使用 if 语句。例如:
[3,5,7,12]
到目前为止,我能够想出这段代码,它重复了一些数字并且没有将整数按排序顺序排列。
int[] arr = new int[r.nextInt(10)];
for (int i = 0; i < arr.length; i++) {
int randInt = r.nextInt(arr.length);
arr[i] = randInt;
}
解决此问题的最佳方法是什么? 注意: 我不能使用ArrayList 和sort 方法。
【问题讨论】:
-
你可以使用二叉树。然后,您可以检查一个值是否已经存在,并在一个具有 O(log n) 复杂性的事务中按排序顺序插入。
-
这能回答你的问题吗? Unique Random Integer Generator 或 stackoverflow.com/questions/20039025/… 或 stackoverflow.com/questions/25012033/…。也许下次你可以在问之前搜索
-
while (condition) { /* code */ break; }有点像if(并且很容易混淆任何读者)
标签: java arrays sorting for-loop if-statement