力扣日常練習

2021-10-02 05:57:13 字數 1901 閱讀 2386

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。

說明:本題中,我們將空字串定義為有效的回文串。

解題:根據題目需求首先過濾掉非字母和數字的字元,緊接著通過雙指標首尾遍歷字串,判斷是否回文即可。

只需五行**即可。

class solution 

};

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。

解題:

這道題還比較有意思,需要我們設計乙個最小棧,能夠滿足o(1)時間複雜度返回棧中最小元素。因此我們採用輔助棧的方法,來幫助我們獲取資料棧中的最小元素,需要注意的事情有以下幾點:

總結來說:出棧時,最小值出棧才同步;入棧時,最小值入棧才同步

下面給出具體**實現:

class minstack 

void push(int x)

}void pop()

int top()

int getmin()

};/**

* your minstack object will be instantiated and called as such:

* minstack* obj = new minstack();

* obj->push(x);

* obj->pop();

* int param_3 = obj->top();

* int param_4 = obj->getmin();

*/

給定乙個已按照公升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數。

函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。

說明:

解題:

由於題目當中說明給出的陣列為有序陣列,且陣列當中無相同元素。那麼我們可以利用到這一點,採用收尾雙指標的方式,來找到對應的元素組合。

class solution ;

int left = 0;

int right = numbers.size()- 1;

while(left < right);}

}return {};

}};

給定乙個正整數,返回它在 excel 表中相對應的列名稱。

例如:1a2

b3c...

...26z27

aa28

ab...

...解題:

其實這道題本質是將十進位制數轉化為26進製數,需要我們注意的是,此時的a-z對應的不是0-25,而是1-26,因此在處理邊界條件的時候需要注意一下:

class solution 

ans = char('a' + flag -1) + ans;

n = (n - flag) / 26;

}return ans;

}};

給定乙個整數 n,返回 n! 結果尾數中零的數量。(時間複雜度o(logn))

解題:

即返回階乘因子當中包含5的個數(這道題記住就好了):

class solution 

return count;

}};

日常 力扣刷題4

尋找兩個正序陣列中的中位數 給定兩個大小分別為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出並返回這兩個正序陣列的 中位數 示例 1 輸入 nums1 1,3 nums2 2 輸出 2.00000 解釋 合併陣列 1,2,3 中位數 2 設計乙個時間複雜度為 o log ...

力扣 演算法練習 Python

1.兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums ...

python可以做力扣的題嗎 力扣題目練習一

10.正規表示式匹配 給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 和 的正規表示式匹配。匹配任意單個字元 匹配零個或多個前面的那乙個元素 所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字...