日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【算法练习】82.重复的DNA序列——哈希表

發布時間:2024/8/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【算法练习】82.重复的DNA序列——哈希表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?加入組隊刷題,每日一題,每天進步?

題目的意思是編寫一個函數來查找子串,這個子串長度為10,在原字符串中出現超過一次。

——leetcode此題熱評

前言

哈嘍,大家好,我是一條。

糊涂算法,難得糊涂

點擊跳轉到《糊涂算法》專欄學習java大廠面試必備數據結構和算法知識!

Question

187. 重復的DNA序列

難度:中等

所有 DNA 都由一系列縮寫為 ‘A’,‘C’,‘G’ 和 ‘T’ 的核苷酸組成,例如:“ACGAATTCCG”。在研究 DNA 時,識別 DNA 中的重復序列有時會對研究非常有幫助。

編寫一個函數來找出所有目標子串,目標子串的長度為 10,且在 DNA 字符串 s 中出現次數超過一次。

示例 1:

輸入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”
輸出:[“AAAAACCCCC”,“CCCCCAAAAA”]
示例 2:

輸入:s = “AAAAAAAAAAAAA”
輸出:[“AAAAAAAAAA”]

Solution

利用哈希表去重,sub截取字符串。

Code

所有leetcode代碼已同步至github

歡迎star

/*** @author 一條coding*/ class Solution {public List<String> findRepeatedDnaSequences(String s) {List<String> list = new ArrayList<String>();HashMap<String, Integer> map = new HashMap<>();HashSet<String> set = new HashSet<>();if(s.length()<10){return list;}for (int i = 0; i <= s.length()-10; i++) {String substring = s.substring(i, i + 10);if (map.containsKey(substring)){set.add(substring);}else {map.put(substring,1);}}return new ArrayList<>(set);} }

Result

復雜度分析

  • 時間復雜度:O(NL)

粉絲福利

?今天是堅持刷題更文的第82/100天

?各位的點贊、關注、收藏、評論、訂閱就是一條創作的最大動力

?更多數據結構和算法講解歡迎關注專欄《糊涂算法》

為了回饋各位粉絲,禮尚往來,給大家準備了一些學習資料

👇 點擊下方卡片關注后回復算法 領取👇

總結

以上是生活随笔為你收集整理的【算法练习】82.重复的DNA序列——哈希表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。