[LeetCode]384. Shuffle an Array
来源:互联网 发布:手机淘宝几天到货 编辑:程序博客网 时间:2024/05/21 05:20
[LeetCode]384. Shuffle an Array
题目描述
思路
洗牌算法
逆序遍历数组,对于当前位置的数,随机生成一个0-当前位置的表示位置的数,交换二者
代码
#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public: Solution(vector<int> nums) { len = nums.size(); this->nums.resize(len); source.resize(len); if (len) { memcpy(&this->nums[0], &nums[0], len * sizeof(int)); memcpy(&source[0], &nums[0], len * sizeof(int)); } } vector<int> reset() { return source; } vector<int> shuffle() { for (int i = len - 1; i >= 0; i--) { swap(nums[i], nums[rand() % (i + 1)]); } return nums; }private: vector<int> nums; vector<int> source; int len;};int main() { vector<int> nums = {1, 2, 3, 4, 6, 9}; Solution s(nums); vector<int> random = s.shuffle(); vector<int> source = s.reset(); cout << "nums:" << endl; for (auto p : nums) { cout << p << " "; } cout << endl; cout << "random:" << endl; for (auto p : random) { cout << p << " "; } cout << endl; cout << "source:" << endl; for (auto p : source) { cout << p << " "; } cout << endl; system("pause"); return 0;}
0 0
- [leetcode] 384. Shuffle an Array
- 【leetcode】384. Shuffle an Array
- 384.[LeetCode]Shuffle an Array
- [LeetCode]384. Shuffle an Array
- [LeetCode] 384. Shuffle an Array
- LeetCode 384. Shuffle an Array
- LeetCode 384. Shuffle an Array
- LeetCode 384. Shuffle an Array
- [Leetcode]384. Shuffle an Array
- 【LeetCode】 384. Shuffle an Array
- [leetcode]384. Shuffle an Array
- LeetCode 384. Shuffle an Array
- [LeetCode]384. Shuffle an Array
- [LeetCode]384. Shuffle an Array
- leetcode 384. Shuffle an Array
- 384. Shuffle an Array [Leetcode]
- LeetCode:384. Shuffle an Array
- 【Leetcode】Shuffle an Array
- Android文件属性的权限和Permission的联系
- 2017/4/15 哈尔滨理工大学省选题解Day1
- unity3d 如何让天空旋转
- OpenCV简单的图像灰度化
- Android 中的IPC机制
- [LeetCode]384. Shuffle an Array
- pat 1128N Queens Puzzle
- Leetcde——121 Best Time to Buy and Sell Stock && 123 Best Time to Buy and Sell Stock
- java和C/C++ 字符char类型占不同的字节!
- 汇编笔记2
- 图解使用CURL下载和上传文件
- android 中Chronometer类源码分析
- JavaBean
- 先谋生,再追梦