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. 从英文中重建数字