package point;import java.util.Random;/**题目:随机洗牌* 给定一个数组,要求对数组进行随机排序返回* @Author Gavin* @date 2022年01月03日 11:21*/public class array_2 {/*** 解题思路:使用一个指针指向最后一个元素,* 然后在剩余的下标中随机选取一个下标,然后和指针指向的位置进行交换* 然后向前移动指针*/private Random rnd=new Random();//交换数组中下标的值void swap(int[] nums,int i,int j){int tmp=nums[j];nums[j]=nums[i];nums[i]=tmp;}//Time:O(n) Space:O(1)public int[] solution(int[] nums){for (int i = nums.length-1; i>0 ;--i) {int j=rnd.nextInt(i+1);//这里是取0到i的随机数swap(nums,i,j);}return nums;}public static void main(String[] args) {Random rnd=new Random();for (int i = 0; i < 10; i++) {// System.out.println(rnd.nextInt(11));System.out.println(rnd.nextInt());}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。