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();<Solution>
這題不難
保留一個原始 input 給 reset 用
然後用 std::next_permutaion 來實做 shuffle 即可
code 如下
c++
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution { | |
public: | |
Solution(vector<int> nums) | |
: original(nums) | |
, res(nums) { | |
} | |
/** Resets the array to its original configuration and return it. */ | |
vector<int> reset() { | |
return original; | |
} | |
/** Returns a random shuffling of the array. */ | |
vector<int> shuffle() { | |
next_permutation(res.begin(), res.end()); | |
return res; | |
} | |
private: | |
vector<int> original; | |
vector<int> res; | |
}; |
kotlin
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution(nums: IntArray) { | |
private lateinit var original: IntArray | |
private var values = mutableListOf<Int>() | |
init { | |
original = nums | |
values.addAll(nums.toList()) | |
} | |
fun reset(): IntArray { | |
return original | |
} | |
fun shuffle(): IntArray { | |
values.shuffle() | |
return values.toIntArray() | |
} | |
} | |
/** | |
* Your Solution object will be instantiated and called as such: | |
* var obj = Solution(nums) | |
* var param_1 = obj.reset() | |
* var param_2 = obj.shuffle() | |
*/ | |
沒有留言:
張貼留言