打乱一个字符串数组,以便字符串必须完全打乱,而不是在 Java 中的原始索引中
Shuffle an array of strings so that the sting must be completely shuffled and not in its original index in Java
原始数组
Array[]={"Car","Truck","Boat"};
随机数组
Array[]={"Truck","Boat","Car"};
不想半随机播放
喜欢
Array[]={"Truck","Car","Boat"};
Car 和 Truck 被交换但 Boat 没有。
我读到这个叫做数组的 Derangement,但我找不到对字符串有帮助的。
这里有一个解决方案可以使数组发生紊乱 O(n)
time 和 O(1)
space 复杂性.
String[] strArray = { "Truck", "Car", "Boat" };
String temp = strArray[0];
for (int i = 0; i < strArray.length - 1; i++) {
strArray[i] = strArray[i + 1];
}
strArray[strArray.length - 1] = temp;
Arrays.stream(strArray).forEach((e) -> System.out.print(e + " "));
我只是将每个元素都移到了它的左边。
这是输出:
Car Boat Truck
String[] arr = { "Car", "Truck", "Boat" };
Arrays.sort(arr);
for (int i = 0; i <= arr.length - 1; i++) {
System.out.println(arr[i]);
}
原始数组
Array[]={"Car","Truck","Boat"};
随机数组
Array[]={"Truck","Boat","Car"};
不想半随机播放
喜欢
Array[]={"Truck","Car","Boat"};
Car 和 Truck 被交换但 Boat 没有。
我读到这个叫做数组的 Derangement,但我找不到对字符串有帮助的。
这里有一个解决方案可以使数组发生紊乱 O(n)
time 和 O(1)
space 复杂性.
String[] strArray = { "Truck", "Car", "Boat" };
String temp = strArray[0];
for (int i = 0; i < strArray.length - 1; i++) {
strArray[i] = strArray[i + 1];
}
strArray[strArray.length - 1] = temp;
Arrays.stream(strArray).forEach((e) -> System.out.print(e + " "));
我只是将每个元素都移到了它的左边。
这是输出:
Car Boat Truck
String[] arr = { "Car", "Truck", "Boat" };
Arrays.sort(arr);
for (int i = 0; i <= arr.length - 1; i++) {
System.out.println(arr[i]);
}