【LeetCode】數組——hashmap的妙用

在遇到一類題目時,通過雙for循環也可暴力破解,但我們可以通過用hashmap來代替一次for循環節約時間開支,在算法上屬于用空間換時間,也能幫助我們更好的理解hashmap這一種重要數據結構,并熟悉hashmap的重要方法。

1.兩數之和

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; ++i) {if (hashtable.containsKey(target - nums[i])) {return new int[]{hashtable.get(target - nums[i]), i};}hashtable.put(nums[i], i);}return new int[0];}
}

兩數之和hashtable.containsKey更像一次隱藏的for循環

219. 存在重復元素?Ⅱ219. 存在重復元素?

class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {Map<Integer, Integer> map = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; ++i){if (map.containsKey(nums[i]) && i - map.get(nums[i]) <= k){return true;}map.put(nums[i], i);}return false;}
}

1512. 好數對的數目
?

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; ++i) {if (hashtable.containsKey(target - nums[i])) {return new int[]{hashtable.get(target - nums[i]), i};}hashtable.put(nums[i], i);}return new int[0];}
}


?

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

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

相關文章

31Windows精簡系統下載推薦

Windows精簡系統下載推薦 世界上有很多人在做Windows精簡系統&#xff0c;去掉了他們認為不必要的功能和插件&#xff0c;達到了減小系統安裝包體積&#xff0c;提升系統運行流暢度和穩定性的目的。 筆者推薦使用大佬不忘初心制作的精簡版系統&#xff0c;最精簡windows10系統安…

什么是數據平臺——企業構建Data+AI的基礎數據底座需要的決策參考

什么是數據平臺 標準的解釋是這樣的 Wikipedia A data platform usually refers to a software platform used for collecting and managing data, and acting as a data delivery point for application and reporting software. 數據平臺是指將各類數據進行整合、存儲、處…

你知道C++多少——默認成員函數

&#x1f308;個人主頁&#xff1a;小新_- &#x1f388;個人座右銘&#xff1a;“成功者不是從不失敗的人&#xff0c;而是從不放棄的人&#xff01;”&#x1f388; &#x1f381;歡迎各位→點贊&#x1f44d; 收藏?? 留言&#x1f4dd; &#x1f3c6;所屬專欄&#xff1…

Python vs MATLAB:選擇深度學習的首選編程語言

Python vs MATLAB&#xff1a;選擇深度學習的首選編程語言 在深度學習領域&#xff0c;編程語言的選擇對于初學者的學習路徑和未來的職業發展至關重要。目前&#xff0c;Python和MATLAB都是進行科學計算和數據分析的流行工具&#xff0c;但它們在深度學習社區中的應用和受歡迎…

linux程序分析命令(一)

linux程序分析命令(一) **ldd&#xff1a;**用于打印共享庫依賴。這個命令會顯示出一個可執行文件所依賴的所有共享庫&#xff08;動態鏈接庫&#xff09;&#xff0c;這對于解決運行時庫依賴問題非常有用。**nm&#xff1a;**用于列出對象文件的符號表。這個命令可以顯示出定…

什么事防抖和節流,有什么區別,如何實現

防抖和節流&#xff0c;本質上是優化高頻率執行代碼的一種手段&#xff0c;比如&#xff1a;resize、scroll、keypress、mousemove這些事件在觸發的時候&#xff0c;會不斷調用綁定在事件上的回調函數&#xff0c;這樣極大浪費資源&#xff0c;降低前端性能。 為了優化體驗&am…

ipa 分區算法分析,圖解

參考 Room Segmentation: Survey, Implementation, and Analysis. 分區算法調查&#xff0c;實現以及評估對比 相關論文 分區算法 New Brooms Sweep Clean - An Autonomous Robotic Cleaning Assistant for Professional Office Cleaning 形態分割 Interactive SLAM using …

函數原型(Function Prototype)、函數定義(Function Definition)和函數聲明(Function Declaration)

函數原型&#xff08;Function Prototype&#xff09;、函數定義&#xff08;Function Definition&#xff09;和函數聲明&#xff08;Function Declaration&#xff09;在C和C等編程語言中扮演著不同的角色&#xff0c;但它們有時在概念上可能會有些重疊。下面是它們之間的主要…

NOR FLASH介紹

參考 http://t.csdnimg.cn/gHcrG 一、NOR FLASH簡介 XIP技術:https://blog.csdn.net/ffdia/article/details/87437872?fromshareblogdetail NOR Flash 和 NAND Flash 的特點和應用舉例&#xff1a; NOR Flash&#xff1a; 特點&#xff1a; 支持隨機訪問&#xff0c;可以直接…

QT作業4

1、思維導圖 2、使用定時器完成鬧鐘 頭文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QLineEdit> #include <QLabel> #include <QPushButton> #include <QTextEdit> #include <QDebug> #include <…

收集郵票C++題目【概率期望DP+數學推導】

題意 Description 有 n n n 種不同的郵票&#xff0c;皮皮想收集所有種類的郵票。唯一的收集方法是到同學凡凡那里購買&#xff0c;每次只能買一張&#xff0c;并且 買到的郵票究竟是 n n n 種郵票中的哪一種是等概率的&#xff0c;概率均為 1 n \frac{1}{n} n1?。但是由…

【elasticsearch】慢查詢替代查詢審計的嘗試

【elasticsearch】慢查詢替代查詢審計的嘗試 使用了es有兩年了&#xff0c;突然發現一個&#xff0c;es沒有查詢審計日志&#xff0c;某個用戶查詢了某個索引的審計。 找了官方文檔和社區的回復都是說使用slow log替代慢查詢。 嘗試一下。 參考鏈接1&#xff1a;https://discus…

Py深度學習基礎|關于Batch Normalization

1. 為什么需要Batch Normalization 通常我們會在輸入層進行數據的標準化處理&#xff0c;這是為了讓模型學習到更好的特征。同樣&#xff0c;在模型的中間層我們也可以進行normalize。在神經網絡中, 數據分布對訓練會產生影響。 比如我們使用tanh作為激活函數&#xff0c;當輸入…

Baidu Comate智能編碼助手:AI編程時代提升效率的好幫手

目錄 寫在前面一、如何安裝二、如何使用場景需求體驗步驟 三、AI 編程實戰指令功能插件功能知識庫功能 四、問題建議五、體驗總結&#x1f680;寫在最后 寫在前面 Baidu Comate 是基于文心大模型的 AI編程工具&#xff0c;它結合百度積累多年的編程現場大數據和外部優秀開源數據…

MySQL中的多表查詢

數據庫設計范式(范例) 好的數據庫設計&#xff0c;事倍功半&#xff0c;不會有歧義 第一范式&#xff1a;列保證原子性&#xff08;列不可再分解&#xff09; 聯系方式&#xff1a;電話&#xff0c;微信&#xff0c;QQ&#xff0c;郵箱 這些都不可分解 第二范式&#xff1a;要…

annaconda詳細解讀換源文件

annaconda換源詳細解讀文件 annaconda換源詳細解讀文件 annaconda換源詳細解讀文件 #踩坑/annaconda換源詳細解讀通道問題 如何準確使用國內源高效安裝GPU版本的Pytorch - 知乎 文件中的custom通道&#xff0c;需要自己手動添加到默認通道里面&#xff0c;記得后面更上/包名…

在xAnyLabeling中加載自己訓練的yolov8s-obb模型進行半自動化標注

任務思路&#xff1a; 先使用xAnyLabeling標注一部分樣本&#xff0c;訓練出v1版本的yolov8-obb模型&#xff0c;然后加載yolov8-obb模型到xAnyLabeling中對其余樣本進行半自動化標注。節省工作量。 任務流程&#xff1a; 1.準備xAnyLabeling標注工具 下載代碼&#xff0c;…

Redis系列-3 Redis緩存問題

1.緩存的作用 數據庫(如Mysql)的持久化特點帶來了較低的性能&#xff0c;高并發的場景下&#xff0c;連接池很快被耗盡而出現宕機或DOS&#xff0c;無法繼續對外提供服務。相對于數據庫的硬盤IO&#xff0c;緩存中間件基于內存進行讀寫&#xff0c;從而具備較大的吞吐量和高并…

SpringBoot:注解詳解

RequestMapping 注解在類上:表示該類中所有響應請求的方法都以此地址為父路徑 value&#xff08;path&#xff09; 指定請求的實際訪問地址&#xff0c;默認RequestMapping(“url”)的值url即為value的值。指定的地址可以是 URI Template 模式。 method 指定請求的method類型…

數據結構(四)——二叉樹和堆(下)

制作不易&#xff0c;三連支持一下唄&#xff01;&#xff01;&#xff01; 文章目錄 前言一、二叉樹鏈式結構的實現總結 前言 這篇博客我們將來了解普通二叉樹的實現和應用&#xff0c;對大家之前分治和遞歸的理解有所挑戰。 一、二叉樹鏈式結構的實現 1.前置說明 在學習二叉…