p105 打乱数组(leetcode 384)

Posted repinkply

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了p105 打乱数组(leetcode 384)相关的知识,希望对你有一定的参考价值。

一:解题思路

二:完整代码示例 (C++版和Java版)

C++:

class Solution 
{
private:
    vector<int> nums;
    vector<int> orignalNums;
public:
    Solution(vector<int>& nums) 
    {
        this->nums = nums;
        this->orignalNums = nums;
    }

    vector<int> reset() 
    {
        return this->orignalNums;
    }

    vector<int> shuffle() 
    {
        for (int i = nums.size() - 1; i >= 0; i--)
        {
            int j = rand() % (i+1);
            swap(nums[i],nums[j]);
        }

        return nums;
    }
};

Java:

class Solution {
        private Random rnd=new Random();
        private int[] nums;
        private int[] orignalNums;
        
        private void swap(int[] nums,int i,int j)
        {
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
        }
        
        public Solution(int[] nums)
        {
              this.nums=nums;
              this.orignalNums=Arrays.copyOf(nums,nums.length);
        }


        public int[] reset() 
        {
               return this.orignalNums;
        }

        public int[] shuffle() 
        {
               for(int i=nums.length-1;i>=0;i--)
               {
                   int j=rnd.nextInt(i+1);
                   swap(nums,i,j);
               }
               
               return nums;
        }
    }

 

以上是关于p105 打乱数组(leetcode 384)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 384. 打乱数组 / 859. 亲密字符串/ 423. 从英文中重建数字

题目地址(384. 打乱数组)

解题报告Leecode 384. 打乱数组——Leecode每日一题系列

LeetCode_Nov_4th_Week

[384]. 打乱数组

Leetcode——打乱数组