leetcode128 最長連續序列

給定一個未排序的整數數組,找出最長連續序列的長度。

要求算法的時間復雜度為?O(n)。

示例:

輸入:?[100, 4, 200, 1, 3, 2]
輸出: 4
解釋: 最長連續序列是 [1, 2, 3, 4]。它的長度為4

思路:map記錄某個連續序列端點的最大長度。

對于數字i,如果已經存在,跳過。

否則:

如果有端點i-1和i+1,合并。

如果只有一邊,和本數字合并。

如果相鄰數字無端點,自己的長度是1

(你也可以合并的時候移除報廢的端點,但是更慢)

class Solution {public int longestConsecutive(int[] nums) {if(nums.length==0)return 0;Map<Integer, Integer> map=new HashMap<>();int ans=1;for(int i:nums){if(!map.containsKey(i)){if(map.containsKey(i-1) && map.containsKey(i+1)){int len=map.get(i-1)+map.get(i+1)+1;if(ans<len)ans=len;map.put(i-1-map.get(i-1)+1,len);map.put(i+1+map.get(i+1)-1,len);map.put(i,-1);}else if(map.containsKey(i-1)){int len=map.get(i-1)+1;if(ans<len)ans=len;map.put(i-1-map.get(i-1)+1,len);map.put(i,len);}else if(map.containsKey(i+1)){int len=map.get(i+1)+1;if(ans<len)ans=len;map.put(i+1+map.get(i+1)-1,len);map.put(i,len);}else{map.put(i,1);}}}return ans;}
}

我真的不知道還能怎么優化了。

一些小優化基本沒用,我試過了,如果有大變動的做法可以告訴我哈。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444769.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444769.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444769.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++(22)--繼承和派生

繼承和派生1.基本概念2.實現公有繼承3.私有繼承的例子4. 繼承和組合《老九學堂C課程》《C primer》學習筆記。《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#xff0c;重復的事情用心做&#xff0c;用心的事情堅持做(老九君)----…

Python- 解決PIP下載安裝速度慢

對于Python開發用戶來講&#xff0c;PIP安裝軟件包是家常便飯。但國外的源下載速度實在太慢&#xff0c;浪費時間。而且經常出現下載后安裝出錯問題。所以把PIP安裝源替換成國內鏡像&#xff0c;可以大幅提升下載速度&#xff0c;還可以提高安裝成功率。 國內源&#xff1a; …

leetcode102 二叉樹的層次遍歷

給定一個二叉樹&#xff0c;返回其按層次遍歷的節點值。 &#xff08;即逐層地&#xff0c;從左到右訪問所有節點&#xff09;。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其層次遍歷結果&#xff1a; [ [3], [9,20], [15…

Windows Git客戶端搭建

最近開始做Windows 開發&#xff0c;所以找了一些windows下安裝git的教程 本文環境&#xff1a; 操作系統&#xff1a;Windows XP SP3 Git客戶端&#xff1a;TortoiseGit-1.8.16.0-32bit 一、安裝Git客戶端 全部安裝均采用默認&#xff01; 1. 安裝支撐軟件 msysgit: http://ms…

C++(23)--多態性與虛函數

多態性與虛函數1.靜態多態-重載2.動態多態-重寫2.1 向上轉換/向下轉換3.虛函數的工作原理4.純虛函數和抽象類5.補充項目(都市浮生記)-卒《老九學堂C課程》學習筆記。《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#xff0c;重復的…

如何在Appscale下發布自己的應用(一)

本篇文章主要講如何在本地搭建appscale環境。由于國內的信息資源有限&#xff0c;很多重要的論壇被墻了&#xff0c;所以遇到不少麻煩&#xff0c;由于最近一段時間vpn也被封掉了&#xff0c;我只能通過特殊渠道方法來翻墻查閱資料&#xff0c;走了不少彎路。 1.先說系統和環境…

總結了線程安全性的二十四個精華問題

1、對象的狀態&#xff1a;對象的狀態是指存儲在狀態變量中的數據&#xff0c;對象的狀態可能包括其他依賴對象的域。在對象的狀態中包含了任何可能影響其外部可見行為的數據。 2、一個對象是否是線程安全的&#xff0c;取決于它是否被多個線程訪問。這指的是在程序中訪問對象的…

如何在Appscale下發布自己的應用(二)

本文開始講如何發布自己的app應用到appscle上 建好appscle網站后&#xff0c;可以在命令行通過 appscle deploy apppathname 來發布自己應用。 除了用命令行提交應用之外&#xff0c;還可以通過appscale的網站直接提交&#xff0c;選擇 upload application->選擇上傳文件-&g…

Python模塊(7)-SciPy 簡易使用教程

SciPy 簡易使用教程1. 符號計算2. 函數向量化3. 波形處理scipy.signal3.1 濾波器3.2 波峰定位基于numpy的一個高級模塊&#xff0c;為數學&#xff0c;物理&#xff0c;工程等方面的科學計算提供無可替代的支持。 做重要的思想是&#xff1a;符號計算和函數向量化 1. 符號計算…

Xcode的Architectures和Valid Architectures的區別

目錄[-] Xcode的Architectures和Valid Architectures的區別 Architectures Valid Architectures 原因解釋如下&#xff1a; 參考1&#xff1a; 所有IOS設備詳情列表 List of iOS devices - Wikipedia, the free encyclopedia 參考2&#xff1a; iOS 7: 如何為iPhone 5S編譯64位…

Python模塊(8)-sklearn 簡易使用教程

sklearn 簡易使用教程1.scikit-learn的數據集2.scikit-learn 的訓練和預測scikit-learn 是在Numpy,SciPy,Matplotlib三個模塊上編寫的&#xff0c;數據挖掘和數據分析的一個簡單有效的工具。scikit-learn包括6大功能&#xff1a;分類&#xff0c;回歸&#xff0c;聚類&#xff…

如何發布GAE的應用(一)

安裝googleSDK的環境&#xff1a; 1 下載安裝包從官網下載 https://cloud.google.com/sdk/downloads -> https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-170.0.0-windows-x86_64-bundled-python.zip 2 如果本地安裝了python&#xff0c;直…

leetcode887 雞蛋掉落

你將獲得 K 個雞蛋&#xff0c;并可以使用一棟從 1 到 N 共有 N 層樓的建筑。 每個蛋的功能都是一樣的&#xff0c;如果一個蛋碎了&#xff0c;你就不能再把它掉下去。 你知道存在樓層 F &#xff0c;滿足 0 < F < N 任何從高于 F 的樓層落下的雞蛋都會碎&#xff0c;…

Docker 的日志相關整理

1 Docker daemon日志的位置 Docker daemon日志的位置&#xff0c;根據系統不同各不相同。 Ubuntu - /var/log/upstart/docker.logBoot2Docker - /var/log/docker.logDebian GNU/Linux - /var/log/daemon.logCentOS - /var/log/daemon.log | grep dockerFedora - journalctl -u…

PaperNotes(15)-圖神經網絡、PyG極簡版入門筆記

圖神經網絡概況1.GNN,GCN,GE的區別2.圖卷積的通式--矩陣該如何作用2.1實現12.2實現22.3實現33.PyTorch geometric3.1 PyG內置數據集3.1.1ENZYMES dataset3.1.2Cora3.2 PyG自定義數據集3.2.1Data構建簡單的圖結構3.2.2 Dataset3.2.3 InMemoryDataset一文讀懂圖卷積GCN(https://z…

leetcode76 最小覆蓋子串

給你一個字符串 S、一個字符串 T&#xff0c;請在字符串 S 里面找出&#xff1a;包含 T 所有字母的最小子串。 示例&#xff1a; 輸入: S "ADOBECODEBANC", T "ABC" 輸出: "BANC" 說明&#xff1a; 如果 S 中不存這樣的子串&#xff0c;則返…

Unity的匹配系統

這個匹配系統是指一個玩家&#xff0c;可以創建一個自己隨意命名的房間&#xff0c;然后其他玩家可以通過聯網去搜索房間&#xff0c;然后加入房間一起游戲 我先講講怎么使用這個匹配系統&#xff1a; 在運行游戲后&#xff0c;因為添加了Network Manager HUD組件&#xff0c;所…

PaperNotes(16)-圖神經網絡GNN簡史、不動點建模-筆記

圖神經網絡簡史、簡介1.圖神經網絡簡史2.圖神經網絡--學習過程3.圖神經網絡--理論基礎4.圖神經網絡的局限5.GNN,RNN,GGNN6.小結閱讀筆記&#xff1a;從圖(Graph)到圖卷積(Graph Convolution)&#xff1a;漫談圖神經網絡模型 (一)(https://www.cnblogs.com/SivilTaram/p/graph_n…

Matchmaker

Unity的多玩家網絡功能包含了玩家在因特網上互相玩而不需要公共IP地址的服務。用戶可以創建游戲,獲取活動游戲列表;加入并退出游戲。當在internet上玩時,網絡流量將通過云中的Unity,而不是直接在客戶端之間進行。這就避免了防火墻和NATs的問題,幾乎可以在任何地方玩游戲。 …

PaperNotes(17)-圖卷積神經網絡GCN-筆記

圖卷積神經網絡GCN-筆記1.卷積是什么2.圖卷積的源起3.空域卷積3.1消息傳遞網絡MPNN3.2 圖采樣與聚合GraphSage4.頻域卷積5.圖結構的序列化-Patch-SAN從圖(Graph)到圖卷積(Graph Convolution)&#xff1a;漫談圖神經網絡模型 (二)(https://www.cnblogs.com/SivilTaram/p/graph_n…