leetcode刷題 劍指offer 棧佇列堆

2021-10-20 08:13:09 字數 2082 閱讀 5198

題目描述:

class cqueue 

stack1.push(value);

}public int deletehead()

}if(stack2.isempty()) return -1;

else return stack2.pop();

}}

沒有第二解法了,就這麼乙個辦法

題目描述:

解法1:輔助棧,乙個棧完成push,pop的基本邏輯,乙個棧專門用來儲存非嚴格次序的最小值

class minstack 

public void push(int x)

}public void pop()

public int top()

public int min()

}

解法2:乙個棧,當最小值入棧的時候進棧兩次

class minstack2

public void push(int x)

topp++;

stack[topp] = x; }

public void pop()

topp--; }

public int top()

public int min() else

}}

題目描述:

class solution 

}return stack.isempty();

}}

題目描述:

解法1:呼叫arrays.sort api

public int getleastnumbers(int arr, int k) 

for(int i = 0; i < k ; i++)

return res;

}

解法2:快排思想

/**

* 解法2:快速排序思想

*/public int getleastnumber2(int arr, int k)

return vec;

}private void randomizedselected(int arr, int l, int r, int k)

int pos = randomizedpartition(arr, l, r);

int num = pos - l + 1;

if(k == num) else if(k < num) else

}//基於隨機的劃分

private int randomizedpartition(int nums, int l, int r)

private int partition(int nums, int l, int r)

}swap(nums, i + 1, r);

return i + 1;

}public void swap(int nums, int i, int j)

題目描述:

這是見過的第乙個hard題,我不認識其中的優先佇列,也不知道題解的解法到底是什麼意思,我的解法超出了時間限制。現在這個階段還是以easy和middle難度的題為主吧。

class medianfinder 

public void addnum(int num)

public double findmedian() else

return midnum;

}}

題目描述:

掌握雙端佇列的用法

class solution 

deque.offerlast(nums[i]);

}res[arr_index++] = deque.getfirst();

for(int i = k; i < nums.length; i++)

deque.offerlast(nums[i]);

res[arr_index++] = deque.getfirst();

}return res;

}}

LeetCode 劍指offer刷題10 1

leetcode 劍指offer刷題 劍指 offer 10 i.斐波那契數列 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是...

leetcode刷題 劍指offer 32題

從上到下列印出二叉樹的每個節點,同一層的節點按照從左到右的順序列印。例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回 3,9,20,15,7 新手上路,才學疏淺,望斧正 利用乙個佇列實現 class solution queue.add root while ...

leetcode刷題 劍指offer 24題

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數在陣列的前半部分,所有偶數在陣列的後半部分。示例 輸入 nums 1,2,3,4 輸出 1,3,2,4 注 3,1,2,4 也是正確的答案之一。新手上路,才學疏淺,望斧正 class solution int m 0,n len 1...