zoukankan      html  css  js  c++  java
  • 384. Shuffle an Array

    Shuffle a set of numbers without duplicates.

    Example:

    // Init an array with set 1, 2, and 3.
    int[] nums = {1,2,3};
    Solution solution = new Solution(nums);
    
    // Shuffle the array [1,2,3] and return its result. Any permutation of [1,2,3] must equally likely to be returned.
    solution.shuffle();
    
    // Resets the array back to its original configuration [1,2,3].
    solution.reset();
    
    // Returns the random shuffling of array [1,2,3].
    solution.shuffle();

    public class Solution {
        int[] originArray;
        int[] suffleArray;
        
        
        public Solution(int[] nums) {
            this.originArray = nums;
            this.suffleArray =  Arrays.copyOf(nums, nums.length); // Or nums.clone() 不能单纯取等号
        }
        
        /** Resets the array to its original configuration and return it. */
        public int[] reset() {
            return originArray;
        }
        
        /** Returns a random shuffling of the array. */
        public int[] shuffle() {
            for(int i = 0 ; i < suffleArray.length ; i++){
                int n = generateRandom();
                swap(i,n);
            }
            return suffleArray;
        }
        
        public void swap (int a, int b){
            int temp = suffleArray[a];
            suffleArray[a] = suffleArray[b];
            suffleArray[b] = temp;
        }
        
        public int generateRandom(){
            Random r = new Random();
            int n = r.nextInt(suffleArray.length);
            return n;
        }
    }
    
    /**
     * Your Solution object will be instantiated and called as such:
     * Solution obj = new Solution(nums);
     * int[] param_1 = obj.reset();
     * int[] param_2 = obj.shuffle();
     */
  • 相关阅读:
    jquery学习11.3.4
    寒假帝释天
    我的2010年
    终于放假了!!!
    2010.1.21
    寒假第五天
    关于三层架构
    js正则表达式限制文本框只能输入数字,小数点,英文字母
    windows的命令行方式下TAB键自动补全设置方法
    Oracle的一些常用命令
  • 原文地址:https://www.cnblogs.com/joannacode/p/6014625.html
Copyright © 2011-2022 走看看