384.[LeetCode]Shuffle an Array

来源:互联网 发布:co.cc域名 编辑:程序博客网 时间:2024/05/17 08:08

比较简单的实现,不过一个问题要注意,经常出现:

数组也是对象,直接等号是无法赋值的,会导致修改一个,另一个也被修改

public class Solution {    int nums[];    int size;    public Solution(int[] nums) {        this.nums = nums;        this.size = nums.length;    }    /** Resets the array to its original configuration and return it. */    public int[] reset() {        return this.nums;    }    /** Returns a random shuffling of the array. */    public int[] shuffle() {        int[] newNums = new int[size];        int[] useNums = new int[size]; // 数组也是对象,不可以直接赋值,这点必须记住        for(int i=0;i<size;i++){            useNums[i] = nums[i];        }        Random r = new Random();        int count = this.size;        for(int i=0;i<this.size;i++){            int index = r.nextInt(count);            newNums[i] = useNums[index];            useNums[index] = useNums[--count];        }        return newNums;    }}
0 0
原创粉丝点击