380. Insert Delete GetRandom O(1)
来源:互联网 发布:windows 桌面文件管理 编辑:程序博客网 时间:2024/05/21 13:21
题目:
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.
public class RandomizedSet {
/** Initialize your data structure here. */
ArrayList<Integer> array=null;
public RandomizedSet() {
if(array==null){
array=new ArrayList<Integer>();
}
}
/** Inserts a value to the set. Returns true if the set did not already contain the specified element. */
public boolean insert(int val) {
if(array.contains(val)){
return false;
}else{
array.add(val);
return true;
}
}
/** Removes a value from the set. Returns true if the set contained the specified element. */
public boolean remove(int val) {
for(int i=0;i<array.size();i++){
if(array.get(i)==val){
array.remove(i);
return true;
}
}
return false;
}
/** Get a random element from the set. */
public int getRandom() {
if(array==null||array.size()==0){
return -1;
}
int t= (int)(Math.random()*10%array.size());
return array.get(t);
}
}
阅读全文
0 0
- [leetcode] 380. Insert Delete GetRandom O(1)
- leetcode 380.Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- [LeetCode]380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 【Leetcode】380. Insert Delete GetRandom O(1)
- LeetCode 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 380. Insert Delete GetRandom O(1)
- 【leetcode】380. Insert Delete GetRandom O(1)
- Mysql技术内幕InnoDB存储引擎读书笔记--《五》索引与算法
- 发现一个奇怪的博客
- python 画子图(add_subplot & subplot)
- python直接生成exe的方法(使用py2exe)
- 走正确的路
- 380. Insert Delete GetRandom O(1)
- 有意思的话题
- Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别
- asp.net 操作带输入输出参数的分页存储过程(二)
- Android studio 自学笔记-----avd打不开模拟器,进度条无反应
- 2017-07-01:集训从此开始
- Win8.1系统提示0xc000000f错误的一种解决方法
- Tomcat启动慢的测试与解决
- SharedPerferences 工具类