【LeetCode 熱題 100】哈希 系列

📁1. 兩數之和

? ? ? ? 本題就是將通過兩層遍歷優化而成的,為什么需要兩層遍歷,因為遍歷 i 位置時,不知道i-1之前的元素是多少,如果我們知道了,就可以通過兩數相加和target比較即可。

? ? ? ? 因為本題要求返回下標,所以我們是用unordered_map來存儲<元素值,下標>

vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int , int> hash;for(int i = 0 ; i < nums.size() ; ++i){if(hash.count(target - nums[i]))return {hash[target - nums[i]] , i};hash[nums[i]] = i;}return {-1 , -1};}

📁49. 字母異位詞分組

????????字母異位詞?是由重新排列源單詞的所有字母得到的一個新單詞。我們就根據這個特性,將字符串重新排序,將重新排序后相同的字符串放到字符串數組中,最終這些字符串數組就是最終結果。

? ? ? ? 這里我們就用到了unordeed_map<string , vector<string>> 來映射重新排序后的字符串對應的字符串數組。

vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string , vector<string>> hash;for(auto str : strs){string s = str;sort(s.begin() , s.end());hash[s].push_back(str);}vector<vector<string>> ret;for(auto kv : hash)ret.push_back(kv.second);return ret;
}

📁128. 最長連續序列

????????找出數字連續的最長序列(不要求序列元素在原數組中連續)的長度,是本題目的關鍵。如果僅僅通過一次遍歷是不能解決問題的,因為遍歷到 i 位置時,得到num[i+1],但是num[i] - 1可能出現在i位置以后,因此我們需要排序或者記錄下來元素是否出現過。

? ? ? ? 題目要求時間復雜度是O(N),因此不考慮排序,這里就用到哈希unordered_set來記錄元素是否出現過。

? ? ? ? 核心思想就是,判斷每個元素是否是最長數字連續序列的第一個元素;如果是,查找之后是否有元素及之后元素的個數。如果不是,就不需要處理了。

int longestConsecutive(vector<int>& nums) {unordered_set<int> hash;for(auto e: nums)hash.insert(e);int ans = 0;for(auto& e : hash){if(!hash.count(e - 1)){int cur = e;int step = 1;while(hash.count(cur + 1)){cur += 1;step += 1;}ans = max(ans , step);}}return ans;}

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

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

相關文章

【Kubernetes基礎】--查閱筆記1

目錄 Kubernetes 是什么為什么要用 KubernetesKubernetes 概念MasterNodePodLabelReplication ControllerDeploymentHorizontal Pod AutoscalerStatefulSetService服務發現機制 JobVolumePersistent VolumeNamespaceConfigmap Kubernetes 是什么 Kubernetes是一個開放的開發平…

卷積神經網絡CNN到底在卷些什么?

來源&#xff1a; 卷積神經網絡&#xff08;CNN&#xff09;到底卷了啥&#xff1f;8分鐘帶你快速了解&#xff01;_嗶哩嗶哩_bilibili卷積神經網絡&#xff08;CNN&#xff09;到底卷了啥&#xff1f;8分鐘帶你快速了解&#xff01;共計2條視頻&#xff0c;包括&#xff1a;卷…

Axios 的 POST 請求:QS 處理數據的奧秘與使用場景解析

在現代前端開發中&#xff0c;Axios 已經成為了進行 HTTP 請求的首選庫之一&#xff0c;它的簡潔易用和強大功能深受開發者喜愛。當使用 Axios 進行 POST 請求時&#xff0c;我們常常會遇到一個問題&#xff1a;是否需要使用 QS 庫來處理請求數據&#xff1f;什么時候又可以不用…

java面試題帶答案2025最新整理

文章目錄 一、java面試題集合框架1. 請簡要介紹 Java 集合框架的體系結構2. ArrayList 和 LinkedList 的區別是什么3. HashMap 的工作原理是什么&#xff0c;它在 JDK 7 和 JDK 8 中有哪些不同4. 如何解決 HashMap 的線程安全問題5. TreeSet 是如何保證元素有序的 二、java面試…

4.B-樹

一、常見的查找方式 順序查找 O(N) 二分查找 O(logN)&#xff08;要求有序和隨機訪問&#xff09; 二叉搜索樹 O(N) 平衡二叉搜索樹(AVL樹和紅黑樹) O(logN) 哈希 O(1) 考慮效率和要求而言&#xff0c;正常選用 平衡二叉搜索樹 和 哈希 作為查找方式。 但這兩種結構適合用于…

CTF--shell

一、原題 &#xff08;1&#xff09;提示&#xff1a; $poc"a#s#s#e#r#t";$poc_1explode("#",$poc);$poc_2$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; $poc_2($_GET[s]) &#xff08;2&#xff09;原網頁&#xff1a;一片空白什么都…

基于51單片機的正負5V數字電壓表( proteus仿真+程序+設計報告+講解視頻)

基于51單片機的正負5V數字電壓表( proteus仿真程序設計報告講解視頻&#xff09; 仿真圖proteus7.8及以上 程序編譯器&#xff1a;keil 4/keil 5 編程語言&#xff1a;C語言 設計編號&#xff1a;S0101 1. 主要功能&#xff1a; 設計一個基于51單片機數字電壓表 1、能夠…

hive數倉要點總結

1.OLTP和OLAP區別 OLTP&#xff08;On-Line Transaction Processing&#xff09;即聯機事務處理&#xff0c;也稱為面向交易的處理過程&#xff0c;其基本特征是前臺接收的用戶數據可以立即傳送到計算中心進行處理&#xff0c;并在很短的時間內給出處理結果&#xff0c;是對用…

【實戰手冊】8000w數據遷移實踐:MySQL到MongoDB的完整解決方案

?? 本文將帶你深入解析大規模數據遷移的實踐方案,從架構設計到代碼實現,手把手教你解決數據遷移過程中的各種挑戰。 ??博主其他匠心之作,強推專欄: 小游戲開發【博主強推 匠心之作 拿來即用無門檻】文章目錄 一、場景引入1. 問題背景2. 場景分析為什么需要消息隊列?為…

運行小程序需要選擇什么配置的服務器

主要是看有多少人瀏覽&#xff0c;如果是每天有幾十個人瀏覽&#xff0c;通常2核或者4核就可以滿足需求&#xff0c;內存的話建議4g或者8g&#xff0c;足夠的內存可以使服務器同時處理多個請求&#xff0c;避免因內存不足導致的卡頓或程序崩潰。 硬盤存儲方面&#xff0c;50GB…

基于SpringBoo的地方美食分享網站

作者&#xff1a;計算機學姐 開發技術&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源碼”。 專欄推薦&#xff1a;前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄&#xff1a;…

Solidity私有函數和私有變量區別,私有變量可以被訪問嗎

web3面試題 私有函數和私有變量區別&#xff0c;私有變量可以被訪問嗎 ChatGPT said: 在 Web3 開發&#xff0c;尤其是使用 Solidity 編寫智能合約時&#xff0c;關于私有函數和私有變量的區別是常見的面試題。下面是詳細解析&#xff1a; ? 私有函數&#xff08;Private Fu…

mongodb 安裝配置

1.下載 官網下載地址&#xff1a;MongoDB Community Download | MongoDB 2.使用解壓包 解壓包安裝&#xff1a;https://pan.baidu.com/s/1Er56twK9UfxoExuCPlJjhg 提取碼: 26aj 3.配置環境&#xff1a; &#xff08;1&#xff09;mongodb安裝包位置&#xff1a; &#xf…

多模態大語言模型arxiv論文略讀(十九)

MLLMs-Augmented Visual-Language Representation Learning ?? 論文標題&#xff1a;MLLMs-Augmented Visual-Language Representation Learning ?? 論文作者&#xff1a;Yanqing Liu, Kai Wang, Wenqi Shao, Ping Luo, Yu Qiao, Mike Zheng Shou, Kaipeng Zhang, Yang Yo…

[LeetCode 45] 跳躍游戲2 (Ⅱ)

題面&#xff1a; LeetCode 45 跳躍游戲2 數據范圍&#xff1a; 1 ≤ n u m s . l e n g t h ≤ 1 0 4 1 \le nums.length \le 10^4 1≤nums.length≤104 0 ≤ n u m s [ i ] ≤ 1000 0 \le nums[i] \le 1000 0≤nums[i]≤1000 題目保證可以到達 n u m s [ n ? 1 ] nums[…

前端面試寶典---閉包

閉包介紹 使用閉包&#xff1a; 在函數內聲明一個變量&#xff0c;避免外部訪問在該函數內再聲明一個函數訪問上述變量&#xff08;閉包&#xff09;返回函數內部的函數使用完畢建議閉包函數null;譯放內存 function createCounter() {let count 0;return function () {coun…

GPT4O畫圖玩法案例,不降智,非dalle

網址如下&#xff1a; 玩法1&#xff1a;吉卜力&#xff08;最火爆&#xff09; 提示詞&#xff1a;請將附件圖片轉化為「吉卜力」風格&#xff0c;尺寸不變 玩法2&#xff1a;真人繪制 提示詞&#xff1a;創作一張圖片&#xff0c;比例4:3&#xff0c;一個20歲的中國女孩…

4.12~4.14【Q】cv homework6

我正在寫GAMES101作業6&#xff0c;在這段代碼中&#xff0c;我十分想知道inline Intersection Triangle::getIntersection(Ray ray) 是由哪個函數&#xff0c;哪段代碼調用的&#xff1f;什么是Inline&#xff1f;詳細解釋&#xff0c;越細節越好 我正在寫GAMES101作業6&…

MATLAB雙目標定

前言&#xff1a; 現在有許多雙目攝像頭在出廠時以及標定好&#xff0c;用戶拿到手后可以直接使用&#xff0c;但也有些雙目攝像頭在出廠時并沒有標定。因而這個時候就需要自己進行標定。本文主要介紹基于matlab工具箱的自動標定方式來對雙目相機進行標定。 1、MATLAB工具箱標…

visual studio 常用的快捷鍵(已經熟悉的就不記錄了)

以下是 Visual Studio 中最常用的快捷鍵分類整理&#xff0c;涵蓋代碼編輯、調試、導航等核心場景&#xff1a; 一、生成與編譯 ?生成解決方案 Ctrl Shift B 一鍵編譯整個解決方案&#xff0c;檢查編譯錯誤&#xff08;最核心的生成操作&#xff09;?編譯當前文件 Ctrl F…