lintcode: Insert Delete GetRandom O(1)
来源:互联网 发布:linux finger 命令 编辑:程序博客网 时间:2024/06/06 04:03
Design a data structure that supports all following operations in average O(1)
time.
insert(val)
: Inserts an item val to the set if not already present.remove(val)
: Removes an item val from the set if present.getRandom
: Returns a random element from current set of elements. Each element must have the same probability of being returned.
class RandomizedSet { private: vector<int> nums; unordered_map<int, int> m; public: RandomizedSet() { // do initialize if necessary } // Inserts a value to the set // Returns true if the set did not already contain the specified element or false bool insert(int val) { // Write your code here if (m.count(val)) return false; nums.push_back(val); m[val] = nums.size()-1; return true; } // Removes a value from the set // Return true if the set contained the specified element or false bool remove(int val) { // Write your code here if (!m.count(val)) return false; m[nums[nums.size()-1]] = m[val]; nums[m[val]] = nums[nums.size()-1]; nums.pop_back(); m.erase(val); return true; } // Get a random element from the set int getRandom() { // Write your code here return nums[rand() % nums.size()]; }};/** * Your RandomizedSet object will be instantiated and called as such: * RandomizedSet obj = new RandomizedSet(); * bool param = obj.insert(val); * bool param = obj.remove(val); * int param = obj.getRandom(); */
阅读全文
0 0
- lintcode(657)Insert Delete GetRandom O(1)
- lintcode: Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1)-LintCode
- Google/LintCode:M-Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1)
- 【leetcode】Insert Delete GetRandom O(1)
- 【Leetcode】Insert Delete GetRandom O(1)
- LeetCode[380] Insert Delete GetRandom O(1)
- Insert Delete GetRandom O(1) - Duplicates allowed
- Leetcode 之 Insert Delete GetRandom O(1)
- LeetCode:381 Insert Delete GetRandom O(1)
- leetcode之 Insert Delete GetRandom O(1)
- [leetcode] 380. Insert Delete GetRandom O(1)
- tp5, laravel, yii2我该选择哪个
- 大人物
- 数据压缩实验无--jpeg解码
- 【JAVA集合详解】ArrayList
- 线性规划-单纯形算法详解
- lintcode: Insert Delete GetRandom O(1)
- Java web实现原理
- python写的一个生成cocos2dx的plist的小工具
- xshell上传文件到Linux服务器以及下载
- h1,p
- Python学习笔记-数字&字符串
- 【JAVA集合详解】LinkedList
- xshell上传文件到Linux服务器以及下载
- AtCoder Regular Contest 077-C