LeetCode 熱題100

文章目錄

  • 哈希
    • 兩數之和
    • 字母異位詞分組
    • 最長連續序列
  • 雙指針
    • 移動零
    • 盛最多水的容器
  • 滑動窗口
  • 子串

多刷題

LeetCode 熱題100

哈希

兩數之和

在這里插入圖片描述

  • 思路分析
    • 暴力做法:每一個數字都與剩余的數字作比較,時間復雜度是O(n2)O(n^2)O(n2)
    • 哈希做法:我們可以使用一個哈希表存儲已經檢查過的數字,每次遍歷到新的數字的時候,就在哈希表里面檢查,target-num是否在這個哈希表里面;如果不存在,則將當前元素加入哈希表,哈希表存儲的是{值:索引}
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();// 使用哈希表map<int,int> store;for(int i = 0 ; i < n ;i++){int tar = target - nums[i];if (store.find(tar) != store.end()){return {store.find(tar)->second,i};}else{store[nums[i]] = i; }}return {};}
};

字母異位詞分組

在這里插入圖片描述

  • 思路分析:
    • 首先,如何判斷哪些單詞是等價的,也就是可以通過重新排列變為一樣的?那么我們肯定會說,只要這個對應字符的個數和種類一樣即可,但是我們實際上,并不會真正的去統計比較每一個字符串的字符的具體情況,然后進行一一對比
    • 既然都可以進行重新排序,為什么不直接將全部的字符串進行排序,我們將排序之后的字符作為鍵,原本的字符串作為值,這樣就可以實現O(n)O(n)O(n)的時間復雜度進行統計,最后只需將這個值匯總一下即可
class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {// 存儲{排序后字符串:原本字符串}unordered_map<string,vector<string>> store;for(auto& s:strs ){string tmp = s ;sort(s.begin(),s.end()); // 升序排序store[s].push_back(tmp);}// 整理答案vector<vector<string>> result;for (auto& p:store){result.push_back(p.second);}return result;}
};

最長連續序列

在這里插入圖片描述

  • 思路分析:
    • 暴力做法:直接對全部的整數數組進行一個排序,然后進行遍歷一遍即可,但是這個排序的時間復雜度為O(nlogn)O(nlogn)O(nlogn)
    • 哈希表:題目要求的是使用O(n)O(n)O(n)的時間復雜度進行計算,所以就不能進行這個排序操作,這里有幾點操作技巧
      • 重復的元素,我們只需遍歷一次即可
      • 找到以元素num開始的最大情況,當存在num-1在哈希表的時候,就直接跳過(因為以num-1會比以num開頭的序列長1)
      • 然后我們就可以一直查找,看看是否num+1在哈希表,然后進行統計更新
class Solution {
public:int longestConsecutive(vector<int>& nums) {    int ans = 0;unordered_set<int> store(nums.begin(),nums.end()); // 把nums轉成哈希集合for (int x : store){if (store.contains(x-1)){continue;}// 以 x 為序列起點int y = x + 1;while (store.contains(y)){y++;}// 此時的y-1是序列的最后一個數,那么從x開始到y-1,一共y-x個數字ans = max(ans,y-x);}return ans;}
};

雙指針

雙指針有多種類型,常見來說,就有正向雙指針和對向雙指針

移動零

在這里插入圖片描述

  • 思路分析
    *

盛最多水的容器

在這里插入圖片描述

在這里插入圖片描述

滑動窗口

子串

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

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

相關文章

Idea或Pycharm上.idea的忽略提交的問題總結

文章目錄問題描述如果是首次提交或者之后的提交代碼時把.idea及其文件提交到遠端倉庫中&#xff0c;此時再創建.gitignore會不生效。問題描述 由于在代碼托管平臺上創建的項目&#xff0c;沒有關聯創建.gitignore文件。導致git 克隆到本地電腦上時&#xff0c;項目的根目錄下也…

【鎖】MySQL中有哪幾種鎖?

&#x1f4da; 歡迎來到我的Java八股文專欄&#xff01; &#x1f389; 各位程序員小伙伴們好呀~ &#x1f44b; 我是雪碧聊技術&#xff0c;很高興能在CSDN與大家相遇&#xff01;? &#x1f680; 專欄介紹 這個專欄將專注于分享Java面試中的經典"八股文"知識點 &a…

曠視科技視覺算法面試30問全景精解

曠視科技視覺算法面試30問全景精解 ——AI賦能 智能安防 視覺創新&#xff1a;曠視科技視覺算法面試核心考點全覽 前言 曠視科技&#xff08;Megvii&#xff09;作為全球領先的人工智能公司&#xff0c;專注于計算機視覺、深度學習和智能安防等領域&#xff0c;推動人臉識別、…

docker nginx 部署前端踩坑記錄

文章目錄坑點1&#xff1a;localhost 與127.0.0.1坑點1&#xff1a;localhost 與127.0.0.1 server {listen 80 default_server;client_max_body_size 20M;# 記錄訪問日志和錯誤日志access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.l…

JAVA_TEN-面向對象高級一

一.Static一 定義&#xff1a;叫靜態&#xff0c;可以修飾成員變量、成員方法成員變量按有無static修飾&#xff0c;分為兩種&#xff1a;類變量&#xff1a;有static 修飾&#xff0c;屬于類&#xff0c;在計算機里只有一份&#xff0c;會被類的全部對象共享。實例變量&#x…

幻獸帕魯開服教程

以下均為個人推薦&#xff0c;不喜勿噴&#xff0c;望審核大大明辨開服條件一臺帶公網的vps服務器&#xff08;需開放udp&#xff09;&#xff0c;配置至少為4c16g&#xff0c;推薦8c32g開服需要準備的工具&#xff1a;steamcmd&#xff1a;https://steamcdn-a.akamaihd.net/cl…

lesson21:Python面向對象編程

目錄 引言 一、了解面向對象編程&#xff08;OOP&#xff09;&#xff1a;編程范式的革命 1.1 什么是面向對象編程&#xff1f; 1.2 OOP vs 面向過程&#xff1a;思維方式的差異 1.3 OOP的三大核心特性 二、類與對象&#xff1a;OOP的基石 2.1 類&#xff08;Class&#…

基于卷積神經網絡與小波變換的醫學圖像超分辨率算法復現

基于卷積神經網絡與小波變換的醫學圖像超分辨率算法復現 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家&#xff0c;覺得好請收藏。點擊跳轉到網站。 1. 引言 醫學圖像超分辨率技術在臨床診斷和治療規劃…

HCIP第一二章筆記整理

第一章&#xff1a;復習HCIA第一階段應用層&#xff1a;自然語言轉換為編碼表示層&#xff1a;編碼轉換為二進制介質訪問控制層&#xff1a;二進制轉化為信號物理層&#xff1a;傳輸電信號第二階段&#xff1a;OSI參考模型應用層&#xff1a;提供網絡服務表示層&#xff1a;對數…

《使用Qt Quick從零構建AI螺絲瑕疵檢測系統》——2. C++基礎:構建程序的堅實骨架

目錄一、概述1.1 背景介紹&#xff1a;從UI到邏輯1.2 學習模式&#xff1a;Qt控制臺應用二、C語法快速入門2.1 變量、數據類型與注釋2.2 函數與代碼封裝2.3 循環與容器&#xff1a;批量處理三、面向對象編程&#xff1a;封裝數據與行為四、Qt的核心擴展&#xff1a;信號與槽通信…

Navicat 遠程連接SQLlite數據庫

1、SQLlite數據庫是一個本地.db文件&#xff0c;默認不支持遠程連接&#xff1b; 2、Navicat 可以通過ntunnel_sqlite.php文件連接遠程SQLlite庫&#xff1b; 3、安裝Navicat&#xff0c;安裝完成&#xff0c;在安裝目錄下找到ntunnel_sqlite.php文件&#xff1b; 4、上傳當前文…

OpenCV用于計算光流的一個類cv::optflow::DualTVL1OpticalFlow

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 cv::optflow::DualTVL1OpticalFlow 是 OpenCV 中用于計算光流的一個類&#xff0c;特別地&#xff0c;它實現了基于雙幀 TV-L1&#xff08;Total V…

PyQt5在Pycharm上的環境搭建 -- Qt Designer + Pyuic + Pyrcc組合,大幅提升GUI開發效率

軟件安裝 目標軟件&#xff1a; Python解釋器Pycharm編輯器 Python官網&#xff1a; 點擊訪問Python官網 Pycharm官網&#xff1a;點擊訪問Pycharm官網 環境搭建 搭建完成后最終的環境詳情&#xff1a; python安裝路徑&#xff1a;D:\ProgramEnviron\Python\Python311Pyth…

30天打牢數模基礎-卷積神經網絡講解

案例代碼實現一、代碼說明本案例使用PyTorch實現一個改進版LeNet-5模型&#xff0c;用于CIFAR-10數據集的圖像分類任務。代碼包含以下核心步驟&#xff1a;數據加載與預處理&#xff08;含數據增強&#xff0c;劃分訓練/驗證/測試集&#xff09;&#xff1b;定義CNN網絡結構&am…

Dev-C++——winAPI貪吃蛇小游戲

&#x1f680;歡迎互三&#x1f449;&#xff1a;霧狩 &#x1f48e;&#x1f48e; &#x1f680;關注博主&#xff0c;后期持續更新系列文章 &#x1f680;如果有錯誤感謝請大家批評指出&#xff0c;及時修改 &#x1f680;感謝大家點贊&#x1f44d;收藏?評論? 今天水一篇吧…

【openbmc6】entity-manager

文章目錄 2.1 事件監聽:dbus在linux上使用的底層通信方式多半是unix domain socket ,事件的到來可被抽象為:socket上有數據,可讀 2.2 事件處理:由于主線程肯定有邏輯得跑,因此新開一個線程甚至多個線程專門用來監聽和處理事件,但存在多線程就意味著可能存在競爭,存在競…

Java 實現 UDP 多發多收通信

在網絡通信領域&#xff0c;UDP&#xff08;用戶數據報協議&#xff09;以其無連接、高效率的特點&#xff0c;在實時通信場景中占據重要地位。本文將結合一段實現 UDP 多發多收的 Java 代碼&#xff0c;詳細解析其實現邏輯&#xff0c;幫助開發者深入理解 UDP 通信的底層邏輯與…

Java學習第六十二部分——Git

目錄 一、關鍵概述 二、核心概念 三、常用命令 四、優勢因素 五、應用方案 六、使用建議 一、關鍵概述 提問&#xff1a;Git 是什么&#xff1f; 回答&#xff1a;一句話&#xff0c;分布式版本控制系統&#xff08;DVCS&#xff09;&#xff0c;用來跟蹤文件&#…

CDN和DNS 在分布式系統中的作用

一、DNS&#xff1a;域名系統&#xff08;Domain Name System&#xff09; 1. 核心功能 DNS是互聯網的“地址簿”&#xff0c;負責將人類易記的域名&#xff08;如www.baidu.com&#xff09;解析為計算機可識別的IP地址&#xff08;如180.101.50.242&#xff09;。沒有DNS&…

uniapp用webview導入本地網頁,ios端打開頁面空白問題

目前還沒解決&#xff0c;DCloud官方也說不行 IOS下webview加載本地網頁時&#xff0c;無法加載資源 - DCloud問答