LeetCode熱題100【第一天】

第一題 兩數之和

給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target 的那 兩個 整數,并返回它們的數組下標。
你可以假設每種輸入只會對應一個答案,并且你不能使用兩次相同的元素。
你可以按任意順序返回答案。
示例 1:
輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
輸入:nums = [3,2,4], target = 6
輸出:[1,2]
示例 3:
輸入:nums = [3,3], target = 6
輸出:[0,1]
提示:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只會存在一個有效答案
題解:

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for i in range(len(nums)):if i != (len(nums) - 1):for j in range(i + 1, len(nums)):if nums[i] + nums[j] == target:return [i, j]return []

進階:
你可以想出一個時間復雜度小于 O(n2) 的算法嗎?

class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:dic = {}for idx, num in enumerate(nums):res = target - numif res in dic:return [dic[res], idx]dic[num] = idx

第二題 字母異位詞分組

給你一個字符串數組,請你將 字母異位詞 組合在一起。可以按任意順序返回結果列表。
示例 1:
輸入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]
輸出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
解釋:
在 strs 中沒有字符串可以通過重新排列來形成 “bat”。
字符串 “nat” 和 “tan” 是字母異位詞,因為它們可以重新排列以形成彼此。
字符串 “ate” ,“eat” 和 “tea” 是字母異位詞,因為它們可以重新排列以形成彼此。
示例 2:
輸入: strs = [“”]
輸出: [[“”]]
示例 3:
輸入: strs = [“a”]
輸出: [[“a”]]
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i] 僅包含小寫字母
題解:

class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:dic = defaultdict(list)for s in strs:s_sort = ''.join(sorted(s))dic[s_sort].append(s)return list(dic.values())

第三題 最長連續序列

給定一個未排序的整數數組 nums ,找出數字連續的最長序列(不要求序列元素在原數組中連續)的長度。
請你設計并實現時間復雜度為 O(n) 的算法解決此問題。
示例 1:
輸入:nums = [100,4,200,1,3,2]
輸出:4
解釋:最長數字連續序列是 [1, 2, 3, 4]。它的長度為 4。
示例 2:
輸入:nums = [0,3,7,2,5,8,4,6,0,1]
輸出:9
示例 3:
輸入:nums = [1,0,1,2]
輸出:3
提示:
0 <= nums.length <= 105
-109 <= nums[i] <= 109
題解:

class Solution:def longestConsecutive(self, nums: List[int]) -> int:nums_set = set(nums)res = 0for i in nums_set:if i - 1 in nums_set:continuej = i + 1while j in nums_set:j += 1res = max(res, j - i)return res

第四題 移動零

給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。
請注意 ,必須在不復制數組的情況下原地對數組進行操作。
示例 1:
輸入: nums = [0,1,0,3,12]
輸出: [1,3,12,0,0]
示例 2:
輸入: nums = [0]
輸出: [0]
提示:
1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1
題解:

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""c = 0for i in range(len(nums)):if nums[i] == 0:c += 1else:nums[i - c] = nums[i]for i in range(len(nums) - c, len(nums)):nums[i] = 0

第五題 盛最多的水

給定一個長度為 n 的整數數組 height 。有 n 條垂線,第 i 條線的兩個端點是 (i, 0) 和 (i, height[i]) 。
找出其中的兩條線,使得它們與 x 軸共同構成的容器可以容納最多的水。
返回容器可以儲存的最大水量。
說明:你不能傾斜容器。
示例 1:
在這里插入圖片描述
輸入:[1,8,6,2,5,4,8,3,7]
輸出:49
解釋:圖中垂直線代表輸入數組 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍色部分)的最大值為 49。
示例 2:
輸入:height = [1,1]
輸出:1
提示:
n == height.length
2 <= n <= 105
0 <= height[i] <= 104
題解:

class Solution:def maxArea(self, height: List[int]) -> int:i, j = 0, len(height) - 1s = 0while i <= j:if height[i] < height[j]:min_h = height[i]i += 1else:min_h = height[j]j -= 1s = max(s, min_h * (j - i + 1))return s

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

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

相關文章

AI Linux 運維筆記

運維基本概念 IT運維是指通過專業技術手段&#xff0c;確保企業的IT系統和網絡持續、安全、穩定運行&#xff0c;保障業務的連續性。運維涵蓋計算機網絡、應用系統、硬件環境和服務流程的綜合管理。主要分為: 系統運維、數據庫運維、自動化運維、容器運維、云計算運維、信創運維…

Redis性能基準測試

基準環境 機器&#xff1a;AWS EC2 c4.8xlarge&#xff08;同機部署 Redis Server 與 ReJSONBenchmark 工具&#xff0c;通過網絡棧連接&#xff09;測試工具&#xff1a;ReJSONBenchmark&#xff08;Go 實現、可配置并發&#xff09;模式&#xff1a;非管線&#xff08;non-pi…

XML外部實體注入與修復方案

XML外部實體注入&#xff08;XXE&#xff09;是一種嚴重的安全漏洞&#xff0c;攻擊者利用XML解析器處理外部實體的功能來讀取服務器內部文件、執行遠程請求&#xff08;SSRF&#xff09;、掃描內網端口或發起拒絕服務攻擊。以下是詳細解釋和修復方案&#xff1a;XXE 攻擊原理外…

解決高并發場景中的連接延遲:TCP 優化與隊頭阻塞問題剖析

你是否在高并發場景下遇到過這種情況&#xff1a;系統性能本來不錯&#xff0c;但在請求量大增的時刻&#xff0c;連接延遲暴漲&#xff0c;響應時間直線飆升&#xff0c;甚至整個服務都變得不可用&#xff1f;當你打開監控時&#xff0c;CPU、內存、帶寬都在正常范圍內&#x…

Web學習筆記4

CSS概述1、CSS簡介CSS&#xff0c;層疊樣式表&#xff0c;是一種樣式表語言&#xff0c;用以描述HTML的呈現內容的方式&#xff08;美化網頁&#xff09;。CSS書寫規則是&#xff1a;選擇器{屬性名&#xff1a;屬性值}的鍵值對CSS有三種引入方式&#xff0c;分別為&#xff1a;…

Spring AI 初學者指南:從入門到實踐與常用大模型介紹

作為 Java 開發者&#xff0c;當 AI 浪潮席卷而來時&#xff0c;如何在熟悉的 Spring 生態中快速擁抱大模型開發&#xff1f;Spring AI 的出現給出了答案。本文將從初學者視角出發&#xff0c;帶你了解 Spring AI 的核心概念、使用方法&#xff0c;并介紹與之搭配的常用大模型&…

C#自定義控件

1。C#中控件和組件的區別&#xff1a; 一般組件派生于&#xff1a;Component類&#xff0c;所以從此類派生出的稱之為組件。 一般用戶控件派生于:Control類或UserControl類&#xff0c;所以從該類派生出的稱之為用戶控件。 他們之間的關系主要是&#xff1a;UserControl繼承Con…

網絡資產測繪工具全景解析:七大平臺深度洞察

?一、資產測繪工具的核心價值?網絡資產測繪&#xff08;Cyber Asset Intelligence&#xff09;技術通過主動掃描與被動分析&#xff1a;實時發現全球暴露的網絡設備&#xff08;服務器、攝像頭、IoT設備&#xff09;自動化構建資產指紋庫&#xff08;操作系統/服務/框架版本&…

編程語言設計目的與側重點全解析(主流語言深度總結)

編程語言的設計本質上是對計算邏輯的形式化表達與工程約束的平衡&#xff0c;不同語言因目標場景、時代需求和技術哲學的差異&#xff0c;形成了獨特的設計范式。以下從系統級、應用級、腳本/動態、函數式、并發/安全等維度&#xff0c;選取10種最具代表性的編程語言&#xff0…

重學前端003 --- 響應式網頁設計 CSS 顏色

文章目錄文檔聲明head顏色模型div根據在這里 Freecodecamp 實踐&#xff0c;記錄筆記總結。 文檔聲明 在文檔頂部添加 DOCTYPE html 聲明 <!DOCTYPE html>head title 元素為搜索引擎提供了有關頁面的額外信息。 它還通過以下兩種方式顯示 title 元素的內容&#xff1a…

這個Pandas函數可以自動爬取Web圖表

Pandas作為數據科學領域鰲頭獨占的利器&#xff0c;有著豐富多樣的函數&#xff0c;能實現各種意想不到的功能。 作為學習者沒辦法一次性掌握Pandas所有的方法&#xff0c;需要慢慢積累&#xff0c;多看多練。 這次為大家介紹一個非常實用且神奇的函數-read_html()&#xff0…

vLLM與SGLang在自然語言處理領域的技術架構與性能對比研究

隨著大語言模型在工業界和學術界的廣泛應用&#xff0c;高效推理框架的選擇成為自然語言處理領域的關鍵挑戰。vLLM與SGLang作為當前最前沿的推理優化框架&#xff0c;分別通過創新的PagedAttention和RadixAttention機制展現了獨特的技術優勢。本文將系統對比兩大框架的核心架構…

樓宇自動化:Modbus 在暖通空調(HVAC)中的節能控制(二)

Modbus 在 HVAC 節能控制中的應用案例案例一&#xff1a;某商業建筑 HVAC 系統節能改造某大型商業建筑&#xff0c;總建筑面積達 5 萬平方米&#xff0c;涵蓋了購物中心、餐飲區和娛樂場所等多種功能區域 。改造前&#xff0c;其 HVAC 系統采用傳統的控制方式&#xff0c;設備之…

win10安裝Elasticsearch

1 啟動elasticsearch 下載地址&#xff1a;Download Elasticsearch | Elastic 雙擊elasticsearch.bat elasticsearch黑窗口啟動亂碼問題解決方案 到 config 文件下找到 jvm.options 文件 打開后 在文件末尾空白處 添加 -Dfile.encodingGBK 保存后重啟即可。 啟動后輸入&am…

[Meetily后端框架] Whisper轉錄服務器 | 后端服務管理腳本

第七章&#xff1a;Whisper轉錄服務器 歡迎回來&#xff01; 到目前為止&#xff0c;我們已經深入探索了"meeting-minutes"項目的"大腦"——Python后端。 我們已經了解了它如何通過后端API網關接收文本轉錄&#xff0c;使用摘要數據結構&#xff08;Pyd…

Azure-ADF 抽取數據

1,Azure 訪問地址 1,國際版 https://portal.azure.com/#homehttps://portal.azure.com/#home2,世紀互聯中國版 Microsoft Azure 由世紀互聯運營https://portal.azure.cn/2,創建資源組并且所有的后續組件都是再此資源下面創建。 3,創建Data Factory 工具 4,核心組件 1. 管…

django queryset 去重

在Django中&#xff0c;使用QuerySet時&#xff0c;如果你想要對查詢結果進行去重&#xff08;即去除重復的記錄&#xff09;&#xff0c;你可以使用幾種不同的方法。這里列出了一些常見的方法&#xff1a; 使用distinct() distinct()方法用于返回QuerySet中不重復的唯一對象。…

WIFI MTU含義 ,協商修改的過程案例分析

WIFI MTU含義 ,協商修改的過程案例分析 文章目錄 **WIFI MTU含義 ,協商修改的過程案例分析****一、WIFI MTU的含義****二、MTU協商修改的過程案例分析****1. TCP/IP協議中的MTU協商****2. 藍牙(BLE)中的MTU協商****3. 網絡設備配置中的MTU調整****三、協商修改的注意事項**…

記一次Android Studio編譯報錯:Execution failed for task ‘:app:compileDebugAidl‘

問題背景: android studio導入AIDL文件的時候編譯提示: Execution failed for task :app:compileDebugAidl. > A failure occurred while executing com.android.build.gradle.tasks.AidlCompile$AidlCompileRunnable > com.android.ide.common.process.ProcessEx…

selenium跳轉到新頁面時如何進行定位

在 Selenium 中&#xff0c;當你跳轉到新頁面&#xff08;例如通過點擊鏈接、提交表單或 JavaScript 重定向&#xff09;時&#xff0c;通常會遇到頁面加載或窗口切換的問題。為了在新頁面上繼續進行頁面定位操作&#xff0c;你需要確保以下幾點&#xff1a;? 1. 等待頁面加載…