A data structure for n elements and O(1) operations

GFG上的一道數據結構的題:

http://geeksquiz.com/data-structure-n-elements-o1-operations/

設計一個數據結構插入刪除和查找都是O(1),存儲 0 - n-1

最初想法是hashtable類似,基於鏈表,但是查找不可能爲O(1), 看了gfg上的講解才豁然開朗。大哭


Solution:

就是用一個數組實現,因爲要存的數已知,0 到n-1,

數字 i 存在就把A[i] 設爲true,mark

不存在就設爲false

實現非常簡單了


        boolean A[];
	public void initialize(int n){
		A = new boolean[n];
		Arrays.fill(A, false);
		//or no need to initialize in java 
	}
	//Insert an element
	public void insert(int i){
		A[i] = true;  
	}
	//Delete an element
	public void delete(int i){
		A[i] = false;
	}
	public int deletelement(int i){
		if(A[i] == true){
			A[i] = false;
			return 0;
		}else{
			return -1; // failure
		}
	}
	//Find an element
	public boolean find(int i){
		return A[i];
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章