zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 384 打乱数组

    384. 打乱数组

    打乱一个没有重复元素的数组。

    示例:

    // 以数字集合 1, 2 和 3 初始化数组。
    int[] nums = {1,2,3};
    Solution solution = new Solution(nums);

    // 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。
    solution.shuffle();

    // 重设数组到它的初始状态[1,2,3]。
    solution.reset();

    // 随机返回数组[1,2,3]打乱后的结果。
    solution.shuffle();

    class Solution {
    
         private int[] nums;
        private int[] originalNums;
    
        public Solution(int[] nums) {
            this.nums = nums;
            this.originalNums = Arrays.copyOf(nums, nums.length);
        }
    
        /**
         * Resets the array to its original configuration and return it.
         */
        public int[] reset() {
            return this.originalNums;
        }
    
        /**
         * Returns a random shuffling of the array.
         */
        public int[] shuffle() {
            Random random = new Random();
            for (int i = 0; i < nums.length / 2; i++) {
                // 每次只需拿第一个元素进行交换即可
                swap(nums, 0, random.nextInt(nums.length));
            }
            return nums;
        }
    
        private void swap(int[] nums, int i, int j) {
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
    }
    
    /**
     * 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();
     */
    
  • 相关阅读:
    php命令注入
    mysql事物
    安装php环境
    移除服务器缓存实例
    show user profile synchronization tools
    manual start user profile import
    JSON is undefined. Infopath Form People Picker in SharePoint 2013
    asp.net web 应用站点支持域账户登录
    Load sharepoint envirement by powershell
    sharepoint 2016 download
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075775.html
Copyright © 2011-2022 走看看