04 22 阿里面試

2021-06-21 16:11:54 字數 1346 閱讀 1415

問題描述:

有乙個六公升的水桶,乙個五公升的水桶,足夠的水,得到乙個三公升的水?用兩種方案實現。

first: 倒5次

六公升桶裝滿,倒入五公升桶中,然後五公升桶清空,將六公升桶中剩下一公升水倒入五公升桶,將六公升桶裝滿,倒入五公升桶中,那麼六公升桶中剩下兩公升水,五公升桶清空,將六公升桶中的兩公升水倒入五公升桶,六公升桶裝滿,倒入五公升桶中,那麼六公升桶中還剩下3公升水,ok。

second: 倒3次

五公升桶裝滿,倒入六公升桶,五公升桶裝滿,倒入六公升桶,那麼五公升桶剩下四公升水。六公升桶清空,將五公升桶中的四公升水倒入六公升桶,將五公升桶裝滿,將六公升桶裝滿,那麼五公升桶中就只剩下3公升水,ok。

演算法題:設計乙個棧,完成壓棧、出棧、取棧中最小值 o(1)時間複雜度

cracking the coding interview  3.2 題

取最小值思路:每次壓棧時都存放從棧底到當前位置的最小值,即和前乙個最小值比較,如果比前乙個最小值小,當前壓入的值是最小值,否則把以前的最小值當做當前的最小值,dp的思想.min[curr] = min(a[curr],min[curr-1] )

#include using namespace std;

#include #include #include class stack

~stack()

void push(int x)

void pop()

int top()

bool empty()

private:

int *buf;

int curr;

};class stackminelse

}void pop()

int minx()

int top()

private:

stack s1,s2;

};int main()

~stack()

void push(int val)

void pop()

int top()

bool empty()

private:

int *buf;

int cur;

};class stackwithmin1

~stackwithmin1()

void push(int val)

void pop()

int top()

bool empty()

int min()

private:

stack s1, s2;

};int main(){

//cout<

面試教訓:由於長時間沒寫**,向面試官說自己比較擅長資料結構,結果乙個上面的演算法題寫的不好就掛了,sigh。。。其實面試挺基礎的。。。呵呵

備戰阿里面試

成功通過阿里網上筆試,14號就要出發去廣州面試了 這不到半個月的時間要好好閉關修煉,鞏固基礎,準備面試 分析了幾篇 面經 得出一些小結論,僅供參考 1.考的東西大多數很基礎 2.和阿里的業務有關係 因為我看到很多關於搜尋,儲存方面的面試題,所以猜想面試應該是和阿里的業務是有關係的 3.多講自己的長處...

阿里面試複習

2.getclass方法 3.tostring方法 4.finalize方法 5.equals方法 6.hashcode方法 7.wait方法 8.notify方法 9.notifyall方法 作用域當前類 同一package 子孫類其他package public protected privat...

阿里面試 一

還在上課,突然接到阿里的 慌的一匹,做個總結,如果後面沒有阿里面試 二 寫出來,那就說明我涼了哈哈.開始叫你做個自我介紹 1.springboot和spring的區別 我回答的簡化配置,內嵌tomcat 2.資料的隔離級別 讀未提交 read uncommitted 讀提交 read committ...