力扣Hot100(Java版本)

1. 哈希

1.1 兩數之和

題目描述:

  • 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target 的那 兩個 整數,并返回它們的數組下標。

  • 你可以假設每種輸入只會對應一個答案,并且你不能使用兩次相同的元素。

  • 你可以按任意順序返回答案。

力扣鏈接:

https://leetcode.cn/problems/two-sum/description/【簡單】

解題思路:

  1. 實例化一個HashMap來保存<值, 索引>

  2. 遍歷HashMap,找到就返回索引下標,找不到就添加元素

核心代碼:

class Solution {public int[] twoSum(int[] nums, int target) {// map保存<值,索引>Map<Integer,Integer> map = new HashMap<>();for(int i = 0; i < nums.length; ++i){if(map.containsKey(target - nums[i])){return new int[]{map.get(target - nums[i]),i};}map.put(nums[i],i); // 返回[索引1,索引2]}return new int[0]; // 返回[]}
}

1.2 字母異位詞分組

題目描述:

  • 給你一個字符串數組,請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。

  • 字母異位詞 是由重新排列源單詞的所有字母得到的一個新單詞。

力扣鏈接:

https://leetcode.cn/problems/group-anagrams/description【中等】

解題思路:

  1. Map保存<排序后的字符串, List<String>>
  2. 遍歷strs, 依次添加到Map

核心代碼:

class Solution {public List<List<String>> groupAnagrams(String[] strs) {// 1. Map保存<排序后的str, List<String>>Map<String, List<String>> map = new HashMap<>();// 2. 遍歷strs, 依次添加到Mapfor (String str : strs){char[] charStr = str.toCharArray();Arrays.sort(charStr);String orderStr = new String(charStr);if (map.containsKey(orderStr)){map.get(orderStr).add(str);}else{List<String> temp = new ArrayList<>();temp.add(str);map.put(orderStr,temp);}}return new ArrayList<List<String>>(map.values());}
}

1.3 最長連續序列

題目描述:

  • 給定一個未排序的整數數組 nums ,找出數字連續的最長序列(不要求序列元素在原數組中連續)的長度。

  • 請你設計并實現時間復雜度為 O(n) 的算法解決此問題。

力扣鏈接:

https://leetcode.cn/problems/longest-consecutive-sequence/description【中等】

解決思路:

  1. 將nums數組的所有元素放入HashSet,去除重復元素
  2. 從序列的最小值開始找,更新最大值

核心代碼:

class Solution {public int longestConsecutive(int[] nums) {// 1. 將nums數組的所有元素放入HashSet, 去除重復元素HashSet<Integer> hs = new HashSet<>();for (int i : nums){hs.add(i);}int ans = 0;for (int i : hs){// 2. 只從序列的最小值開始找if (!hs.contains(i - 1)){int curAns = 1;while(hs.contains(i+1)){i++;curAns++;}ans = Math.max(ans,curAns);}}return ans; }
}

2. 雙指針

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

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

相關文章

FCB文件疑問+求助:01 百度網盤視頻自動生成AI筆記pdf會出現對應fcb文件-作用待詳解

疑問求助&#xff1a;01 百度網盤視頻自動生成AI筆記pdf會出現對應fcb文件-作用待確認確認詳解.md 一、疑惑起因 百度網盤視頻自動生成AI筆記pdf會出現對應fcb文件&#xff0c;我可以刪除fcb文件么&#xff1f;影響什么&#xff1f;如何打開fcb其內容是啥&#xff1f;直觀看刪…

【數據結構】——棧和隊列OJ

一、有效的括號 題目鏈接&#xff1a; 20. 有效的括號 - 力扣&#xff08;LeetCode&#xff09; 題目的要求很簡單&#xff0c;就是要求我們判斷其輸入的括號字符串是否是有效的括號&#xff0c;那么我們要如何判斷呢&#xff1f; 我們可以這樣&#xff0c;我們遍歷出傳入的…

開源免費無廣告專注PDF編輯、修復和管理工具 辦公學術 救星工具

各位PDF處理小能手們&#xff01;我跟你們說啊&#xff0c;今天要給大家介紹一款超牛的國產開源PDF處理工具&#xff0c;叫PDFPatcher&#xff0c;也叫PDF補丁丁。它就像一個PDF文檔的超級修理工&#xff0c;專門解決PDF編輯、修復和管理的各種難題。 這軟件的核心功能和特點&a…

【Bluedroid】藍牙 HID DEVICE 初始化流程源碼解析

本文深入剖析Android藍牙協議棧中HID設備&#xff08;BT-HD&#xff09;服務的初始化與啟用流程&#xff0c;從接口初始化、服務掩碼管理、服務請求路由到屬性回調通知&#xff0c;完整展現藍牙HID服務激活的技術路徑。通過代碼邏輯梳理&#xff0c;揭示服務啟用的核心機制&…

2025年項目管理軟件革命:中國技術主權與全球創新浪潮的交鋒

全球項目管理軟件市場正在經歷一場由多重技術疊加引發的結構性變革。根據Gartner最新預測&#xff0c;到2025年項目管理工具市場規模將突破220億美元&#xff0c;其中中國市場增速達38%&#xff0c;遠超全球平均水平。這場變革不僅關乎工具功能迭代&#xff0c;更深刻影響著企業…

計算機組成與體系結構:組相聯映射(Set-Associative Mapping)

目錄 &#x1f9e9; 映射方式問題回顧 &#x1f3d7;? 組相聯映射 工作流程 地址結構 ?? 替換策略 示例&#xff1a; 優點 ?? 與其他映射方式對比 &#x1f9e9; 映射方式問題回顧 直接映射的問題&#xff1a; 優點&#xff1a;實現簡單&#xff0c;查找速度快…

機器學習第八講:向量/矩陣 → 數據表格的數學表達,如Excel表格轉數字陣列

機器學習第八講&#xff1a;向量/矩陣 → 數據表格的數學表達&#xff0c;如Excel表格轉數字陣列 資料取自《零基礎學機器學習》。 查看總目錄&#xff1a;學習大綱 關于DeepSeek本地部署指南可以看下我之前寫的文章&#xff1a;DeepSeek R1本地與線上滿血版部署&#xff1a;…

基于Spring AI實現多輪對話系統架構設計

文章目錄 基于Spring AI實現多輪對話系統架構設計 前言 一、多輪對話系統核心架構 1.1 架構概覽 1.2 Spring AI核心優勢 二、ChatClient與多輪對話設計 2.1 ChatClient的特性與角色 2.2 實現多輪對話方法 三、Advisors攔截器機制 3.1 Advisors概念與工作原理 3.2 對…

C++中的虛表和虛表指針的原理和示例

一、基本概念 1. 什么是虛函數&#xff08;virtual function&#xff09;&#xff1f; 虛函數是用 virtual 關鍵字修飾的成員函數&#xff0c;支持運行時多態&#xff08;dynamic polymorphism&#xff09;。通過基類指針或引用調用派生類重寫的函數。 class Base { public:…

FPGA:XILINX FPGA產品線以及器件選型建議

本文將詳細介紹Xilinx&#xff08;現為AMD的一部分&#xff09;當前的FPGA產品線及其主要特點&#xff0c;并提供器件選型的建議。以下內容基于Xilinx FPGA的最新信息&#xff0c;涵蓋產品系列、特性及選型指導。由于Xilinx已被AMD收購&#xff0c;產品線以AMD Xilinx品牌為主&…

【C++】多線程和多進程

在C++中,多線程通信(同一進程內的線程間交互)和進程間通信(IPC,不同進程間的數據交換)是構建并發系統的核心技術。以下是兩種通信機制的詳細介紹和典型實現: 一、多線程通信(線程間同步與數據共享) 1. 共享內存與同步原語 通過全局變量或對象成員變量實現數據共享,…

PC Cleaner軟件,它能幫助用戶輕松清理和優化電腦,提升系統性能。

不用破解就能用&#xff01;這款超神的電腦清理 Pro 版&#xff0c;絕了&#xff01; 寶子們&#xff0c;我是你們的數碼小助手藍木云&#xff01;不知道大家有沒有這種感覺&#xff0c;電腦用久了&#xff0c;就像住久了沒打掃的屋子&#xff0c;越來越 “亂”&#xff0c;運…

linux中fork()函數的小問題

問題描述&#xff1a;分析下列代碼&#xff0c;分別能產生多少a // 1 for(int i0; i<3; i){ printf("a\n"); fork(); }// 2 for(int i0; i<3; i){ fork(); printf("a\n"); }// 3 for(int i0; i<3; i){ fork(); printf("a"); } fflus…

阿克曼-幻宇機器人系列教程2- 機器人交互實踐(Topic)

在上一篇文章中&#xff0c;我們介紹了兩種登錄機器人的方式&#xff0c;接下來我們介紹登錄機器人之后&#xff0c;我們如何通過topic操作命令實現與機器人的交互。 1. 啟動 & 獲取topic 在一個終端登錄樹莓派后&#xff0c;執行下列命令運行機器人 roslaunch huanyu_r…

51c嵌入式~電路~合集27

我自己的原文哦~ 一、7805應用電路 簡介 如上圖&#xff0c;7805 集成穩壓電路。 7805是串聯式三端穩壓器&#xff0c;三個端口分別是電壓輸入端&#xff08;IN&#xff09;&#xff0c;地線&#xff08;GND&#xff09;&#xff0c;穩壓輸出&#xff08;OUT&#xff09;…

Vitrualbox完美顯示系統界面(只需三步)

目錄 1.使用vitrualbox的增強功能&#xff1a;?編輯 2.安裝增強功能&#xff08;安裝完后要重啟虛擬機&#xff09;&#xff1a; 3. 調整界面尺寸&#xff08;如果一個選項不行的話&#xff0c;就多試試其他不同的百分比&#xff09;&#xff1a; 先看看原來的&#xff0c;…

2025年第十六屆藍橋杯軟件賽省賽C/C++大學A組個人解題

文章目錄 題目A題目C&#xff1a;抽獎題目D&#xff1a;紅黑樹題目E&#xff1a;黑客題目F&#xff1a;好串的數目 https://www.dotcpp.com/oj/train/1166/ 題目A 找到第2025個素數 #include <iostream> #include <vector> using namespace std; vector<i…

電機控制儲備知識學習(一) 電機驅動的本質分析以及與磁相關的使用場景

目錄 電機控制儲備知識學習&#xff08;一&#xff09;一、電機驅動的本質分析以及與磁相關的使用場景1&#xff09;電機為什么能夠旋轉2&#xff09;電磁原理的學習重要性 二、電磁學理論知識1&#xff09;磁場基礎知識2&#xff09;反電動勢的公式推導 附學習參考網址歡迎大家…

JMeter同步定時器 模擬多用戶并發訪問場景

同步定時器 JMter同步定時器的作用主要在于模擬多用戶并發訪問的場景&#xff0c;確保多個線程能夠同時執行某個操作&#xff0c;達到真正的并發效果。 當多個線程同時啟動時&#xff0c;它們可能會在不同的時間間隔內執行&#xff0c;這樣就無法達到真正的并發效果。&#xff…

C++11異步編程 --- async

C11異步編程 — async和future C11引入了async和future機制&#xff0c;用于簡化異步編程和并發操作。這兩個組件位于<future>頭文件中&#xff0c;提供了高級的異步任務管理接口。 一、async 1.定義 std::async std::async是一個函數模板&#xff0c;用于啟動一個異…