每日演算法 4月14日 05

2021-10-05 00:27:30 字數 1324 閱讀 9900

我有話想說.

今天本來想再鞏固一下棧的基礎,去leedcode去做了關於棧的練習,結果因為一句**(是在操作完之後沒有將top值還原)搞到心態炸了!

太難了,各位仁兄寫**一定一定要考慮全面。否則你就是下乙個心態**的我(幸災樂禍~)

好啦,言歸正傳——

請你設計乙個支援下述操作的棧。

實現自定義棧類 customstack :

customstack(int maxsize):用maxsize初始化物件,maxsize 是棧中最多能容納的元素數量,棧在增長到maxsize 之後則不支援 push 操作。

void push(int x):如果棧還未增長到 maxsize ,就將 x 新增到棧頂。

int pop():彈出棧頂元素,並返回棧頂的值,或棧為空時返回 -1 。

void inc(int k, int val):棧底的 k 個元素的值都增加 val 。如果棧中元素總數小於 k ,則棧中的所有元素都增加 val 。

typedef

struct

customstack;

customstack*

customstackcreate

(int maxsize)

void

customstackpush

(customstack* obj,

int x)

intcustomstackpop

(customstack* obj)

void

customstackincrement

(customstack* obj,

int k,

int val)

int temp=obj->top;

if(k>=

(obj->top)+1

)}else

}//不把top的值再賦回來就沒了!

obj->top=temp;

//你是不是想整死老子!!!

}void

customstackfree

(customstack* obj)

}

對我自己的忠告:如果沒有較好的思維能力,還是老老實實把else語句加上;

如果返回值為void,但同時又需要在可能出錯的地方終止程式時,可寫作return ;

**一定要追求結構化,函式化。

會精練一些題,明天寫快慢指標相關的題。加油!!!

每日演算法 4月11日 02

給定兩個序列,分別為入棧序列和出棧序列,判斷出棧序列是否合理,注 入棧時可能不是一次性全部入棧,也可能不是一次性全部出棧 例如 輸入 pushed 1,2,3,4,5 popped 4,3,5,1,2 輸出 false 解釋 1 不能在 2 之前彈出。首先確定要排除特殊情況,比如給定序列為空或者給定...

Qtum量子鏈週報(4月8日 4月14日)

qtum 量子鏈4月8日 4月14日 新聞動態回顧 qtum量子鏈受邀出席日本teamz區塊鏈峰會 4月6 7日 日本時間 第五屆全球區塊鏈峰會teamz blockchain summit在日本東京盛大召開。qtum量子鏈創始人帥初受邀出席,以區塊鏈技術先驅和行業開拓者的角度 了區塊鏈行業當下急需...

8月14日 每日安全知識熱點

資訊類 黑客激進主義開始轉向惡意欺詐行動 麻省理工和微軟研究院製造乙個 智慧型 紋身,可以讓你遠端控制你的 技術類 使用afl對nginx進行fuzzing northsec 2016會議所有 rooting三星ip攝像頭 來自usenix的 針對蘋果imessage的選擇密文攻擊 armv8 sh...