給定字串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語句...