使用雜湊集合來降低查詢複雜度

2021-10-24 19:23:48 字數 525 閱讀 6008

給定字串j 代表石頭中寶石的型別,和字串 s代表你擁有的石頭。 s 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。

j 中的字母不重複,j 和 s中的所有字元都是字母。字母區分大小寫,因此"a"和"a"是不同型別的石頭。

示例 1:

輸入: j = 「aa」, s = 「aaabbbb」

輸出: 3

示例 2:

輸入: j = 「z」, s = 「zz」

輸出: 0

注意:s 和 j 最多含有50個字母。

j 中的字元不重複。

class

solution

for(

int i =

0; i < stoneslength; i++)}

return jewelscount;

}}

此題目暴力的話可以採用雙重for迴圈來解決,但是複雜度較高,而使用雜湊集合的contains方法可以以o(1)複雜度的方式查詢元素,降低複雜度。

變換迴圈變數,降低複雜度

在一些問題中,如果適當選擇迴圈變數,將會降低程式的複雜度,例如判斷子串的問題 判斷字串 s 是不是 t的子串,有兩種方案 方案一 思路 對s中的元素遍歷,根據貪心的思想,搜尋t中第乙個該元素,若不存在,則說明s不是t的子串。注意,s中的元素在t中的相對位置必須保持不變,所以每一次搜尋時,應該從上一次...

常見降低圈複雜度方法

圈複雜度計算方式 圈複雜度 cc 判斷條件個數 1其中1代表函式本身的複雜度 關鍵字 if,else if,for,while,case,catch等。對if,if else,if else if for,switch while語句進行簡要說明 之後函式的圈複雜度是所有的語句判斷數加函式本身 常用...

如何降低SQL語句複雜度

sql語句複雜度的優化就是在結果正確的前提下,將複雜 難以維護的sql語句拆分成獨立 易懂的sql片段,當然也要充份利用索引,減少表描的i o次數,盡量避免表搜尋的發生。下面介紹降低sql語句複雜度的幾個建議 1 動態查詢語句 一些應用為了實現客戶端的靈活性,會根據使用者的選擇,動態拼出tsql語句...