牛客演算法學習2

2021-09-27 08:08:06 字數 841 閱讀 6358

title: 牛客演算法學習2

date: 2019-07-28 19:34:47

categories:

在實現棧的基本功能的基礎上,再實現返 回棧中最小元素的操作。

1.pop、push、getmin操作的時間複雜度都是o(1)。

2.設計的棧型別可以使用現成的棧結構

用棧實現佇列

因為棧是先進後出的, 假設現有push棧, 先建立乙個輔助棧pop逆序存入push中的值, 只需要彈出pop棧頂的值即可, 只有當pop棧為空的時候才存入push中所有的資料, 而且必須一次性存入.

用佇列實現棧

佇列是先進先出的, 假設有佇列queue, 建立乙個輔助佇列help, 當需要彈出時, 首先將queue彈出到只剩乙個值, 並且將彈出的值依次放入help中, 這時候queue中剩下的資料就是最後進來的那個資料, 彈出即可. 此時help中還是維持著queue中原來的順序, 而queue佇列已經空了, 只需要將help與queue佇列互換一下就可以了.

雜湊函式的輸入認為是無窮的, 而輸出是有限的

相同的輸入, 一定是相同的輸出 same input same output

不同的輸入也可能導致相同的輸出 dif input maybe same output, 這就叫雜湊碰撞

離散性, 整個s域上基本均勻分布.

牛客網演算法學習記錄 排序

對於乙個int陣列,請編寫乙個氣泡排序演算法,對陣列元素排序。給定乙個int陣列a及陣列的大小n,請返回排序後的陣列。測試樣例 1,2,3,5,2,3 6 1,2,2,3,3,5 測試用例子只有正數。公升序 氣泡排序 比較簡單,主要就是注意排序時陣列的邊界。for int i 0 ia j 1 re...

牛客網演算法學習記錄 概率

n只螞蟻從正n邊形的n個定點沿著邊移動,速度是相同的,問它們碰頭的概率是多少?給定乙個正整數n,請返回乙個陣列,其中兩個元素分別為結果的分子和分母,請化為最簡分數。測試樣例 3返回 3,4 因為是正n邊型,所以所有的點的路程相同。他們的速度又是相同的。從總情況來說,乙個結點有兩種選擇,那麼n個結點就...

牛客網演算法學習筆記 排列組合

在xxy的方格中,以左上角格仔為起點,右下角格仔為終點,每次只能向下走或者向右走,請問一共有多少種不同的走法 給定兩個正整數int x,int y,請返回走法數目。保證x y小於等於12。測試樣例 2,2返回 2橫向要走x 1步,縱向要走y 1步,總共需要走,x y 2步,其中有x 1橫向。ccla...