LeetCode熱題100(JavaScript)

哈希

兩數之和

暴力解法

/*** @param {number[]} nums* @param {number} target* @return {number[]}*/
var twoSum = function(nums, target) {for(let i =0;i<nums.length;i++){let x1 = nums[i]for(let j = 0 ; j<nums.length;j++){if(i!=j){let x2 = nums[j]if(x1+x2==target){return [i,j]}}}}
};

Map法

var twoSum = function(nums, target) {const map = new Map()for(let i=0;i<nums.length;i++){let key = target-nums[i]if(map.has(key)){return [map.get(key),i]}else{map.set(nums[i],i)}  }return []
};

字母異味詞分組

/*** @param {string[]} strs* @return {string[][]}*/
var groupAnagrams = function(strs) {let map = new Map();  for (let i = 0; i < strs.length; i++) {  let word = strs[i];  // 使用數組的 sort 方法對字符串的字符進行排序,并將排序后的字符數組重新連接成字符串  let sorted_word = word.split('').sort().join('');  if (map.has(sorted_word)) {  map.get(sorted_word).push(word);  } else {  map.set(sorted_word, [word]);  }  }  // 將Map中的值(數組)轉換為數組返回  return [...map.values()];  
};

最長連續序列

var longestConsecutive = function(nums) {if (nums.length === 0) return 0;  let set = new Set(nums);  let maxSize = 0;  for (let num of set) {  // 跳過非連續序列的起始數字(即那些前面有數字的數字)  if (!set.has(num - 1)) {  let currentNum = num;  let currentLength = 1;  // 遍歷連續序列  while (set.has(currentNum + 1)) {  currentNum++;  currentLength++;  }  // 更新最大長度  maxSize = Math.max(maxSize, currentLength);  }  }  return maxSize; 
};

雙指針

移動零

解法1

先遍歷數組,計算非零元素的數量。然后,在第二次遍歷中,只將非零元素復制回數組的前部,并跳過0。

function moveZeroes(nums) {  let count = 0;   for (let num of nums) {  if (num !== 0) {  count++;  }  }  let writeIndex = 0;   for (let num of nums) {  if (num !== 0) {  nums[writeIndex++] = num;  }   }  // 填充剩余的0for (let i = writeIndex; i < nums.length; i++) {  nums[i] = 0;  } return nums
}  

解法2

  1. 初始化兩個指針,slow?和?fast,都指向數組的第一個元素。
  2. 遍歷數組(fast?從頭到尾),對于每個?nums[fast]
    • 如果?nums[fast]?不為 0,則交換?nums[slow]?和?nums[fast],并將?slow?向后移動一位(slow++)。
    • 如果?nums[fast]?為 0,則只移動?fast?指針。
  3. 遍歷結束后,所有非零元素都已經被移動到了數組的前面,而后面的元素則自動成為了 0
var moveZeroes = function(nums) {let slow=0let fast = 0for(fast;fast<nums.length;fast++){if(nums[fast]!=0){let swap = nums[slow]nums[slow] = nums[fast]nums[fast] = swapslow++}}return nums
};

盛最多水的容器

  1. 初始化左指針?left?為 0,右指針?right?為?height.length - 1
  2. 進入循環,當?left < right?時執行以下步驟:
    • 計算當前容器的面積?area = Math.min(height[left], height[right]) * (right - left)
    • 更新最大面積?maxArea(如果?area?大于?maxArea)。
    • 如果?height[left] < height[right],則?left++(移動左指針),否則?right--(移動右指針)。
  3. 退出循環后,maxArea?就是所求的最大面積。
var maxArea = function(height) {let left = 0let right = height.length-1let max = 0while(left<right){let h1 = height[left]let h2 = height[right]let area = Math.min(h1, h2) * (right - left)max = Math.max(max, area);  if (h1 > h2) {  right--;  } else {  left++;  } }return max
};

三數之和

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

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

相關文章

算法金 | 來了,pandas 2.0

大俠幸會&#xff0c;在下全網同名「算法金」 0 基礎轉 AI 上岸&#xff0c;多個算法賽 Top 「日更萬日&#xff0c;讓更多人享受智能樂趣」 今日 210/10000 Pandas 是一個強大的數據分析庫&#xff0c;廣泛應用于科學研究、金融分析、商業智能等領域。它提供了高效的數據結構…

[WUSTCTF2020]level4題解 入土為安的第三天

二叉樹 Practice my Data Structure code..... Typing....Struct.....char....*left....*right............emmmmm...OK! Traversal! Traversal type 1:2f0t02T{hcsiI_SwA__r7Ee} Traversal type 2:20f0Th{2tsIS_icArE}e7__w Traversal type 3: //type3(&x[22]); No w…

samba服務、安裝-smbpasswd工具、pdbedit工具、testparm工具

在Windows構建的網絡生態里&#xff0c;各主機間的文件及打印資源共享&#xff0c;主要依賴微軟專有的SMB/CIFS網絡協議來達成。SMB&#xff08;即Server Message Block&#xff0c;服務消息塊&#xff09;與CIFS&#xff08;全稱Common Internet File System&#xff0c;通用互…

ShardingSphere的項目應用

1. 事情的起因 最近,隨著業務的發展,我們的項目面臨著日益增長的數據挑戰。系統使用的數據庫是mysql,每天的增量差不多在百萬左右,由于沒有進行分庫分表,以前設置的單表保存已經越發不能滿足需求,所以想維持表的性能,甲方考慮對這些大數據量的表進行分表操作,同時也采…

MySQL left join、right join以及inner join的區別 ?

LEFT JOIN&#xff08;左連接&#xff09;、RIGHT JOIN&#xff08;右連接&#xff09;和INNER JOIN&#xff08;內連接&#xff09;是SQL中用于連接兩個或多個表以檢索數據的重要操作。它們之間的主要區別在于如何處理那些在連接條件下沒有匹配的行。下面通過具體的例子來說明…

掃地機器人如何解決安全性與隱私保護

掃地機器人在解決安全性與隱私保護方面&#xff0c;需要從多個角度入手&#xff0c;包括產品設計、技術實現、用戶教育以及法律法規遵守等方面。以下是具體的解決方案&#xff1a; 一、安全性解決方案 1.提升避障能力&#xff1a;使用先進的傳感器技術&#xff0c;如激光雷達、…

JavaScript switch 語句

JavaScript switch 語句 JavaScript 中的 switch 語句是一種多分支選擇結構&#xff0c;用于根據變量的值執行不同的代碼塊。它提供了一種簡潔的方式來替代多個 if...else 語句&#xff0c;特別是在處理多個條件時。 基本語法 switch (expression) {case value1:// 代碼塊 1…

微信小程序實現省市區級聯選擇組件

微信小程序實現省市區級聯選擇組件 首先&#xff0c;創建一個新的組件&#xff0c;命名為 area-picker。 在 area-picker.wxml 文件中添加以下代碼&#xff1a; <view class"area-picker"><picker mode"multiSelector" bindchange"onPick…

C++基礎篇(2)

目錄 前言 1.缺省參數 2.函數重載 2.1函數重載的基本規則 ?編輯2.2注意事項 2.3 重載解析&#xff08;Overload Resolution&#xff09;--補充內容 3.引用 3.1引用的概念和定義 3.2引用的特性 3.3引用的使用 3.4const引用 4.指針和引用的關系 結束語 前言 上節小編…

PlantUML 教程:繪制時序圖

繪制時序圖是 PlantUML 的一個強大功能&#xff0c;下面是詳細的 PlantUML 時序圖教程&#xff0c;幫助你理解如何使用它來創建清晰的時序圖。 基本概念 時序圖&#xff08;Sequence Diagram&#xff09;用于展示對象之間的交互以及它們之間的消息傳遞順序。它主要由以下元素…

感應燈光畫純電路開源版本

前言 之前那版燈光畫用的從垃圾佬淘的電路板拼出來的&#xff0c;功能不全&#xff0c;顯示效果不太好而且無法固定到相框上&#xff0c;這次改版用的嘉立創smt&#xff0c;貼了5片板子&#xff08;19元&#xff09;&#xff0c;功能上的改進是加了無極觸摸調光、添加了黃白兩…

簡易圖書管理系統——MYsql+Javase+JDBC

目錄 前言 數據表的建立 操作包各個類的實現 增加類 刪除類 展示類 借閱與歸還類 前言 書接上文 JDBC編程的學習——MYsql版本-CSDN博客 本期我們通過對先前圖書管理系統進行改造,是它的數據能保存在數據庫中 完整代碼我已經保存在github中,能不能給個星呢!!!! call…

debian固定ip

debian固定ip 前言 安裝好的Debian系統后&#xff0c;為了確保每次登陸的ip不變&#xff0c;需要固定 方法 命令如下 ip addr | grep inet因為有有線網和無線網 2 種連接方式&#xff0c;因此需要區別。 其中 enp 的是有線&#xff0c;wlp 的是無線 查看網關 IP 命令如下 …

互聯網末法時代的一些思考

這篇文章也是臨時起意&#xff0c;很長一段時間沒寫個人思考類的文章&#xff0c;主要原因也是時間完全不夠用。隨著年齡的增長&#xff0c;看待問題的視角也逐漸發生變化&#xff0c;例如從關注現象到關注動機&#xff0c;從關注結果到關注起因&#xff0c;2021年的時代我曾經…

java面向對象進階篇--static

一、前言 java進階篇已經開始了&#xff0c;先從面向對象開始&#xff0c;由于時間原因今天就只更新了static部分&#xff0c;內容上特別詳細&#xff0c;一些特別的注意事項也在反復的提醒大家。 溫馨提示一下&#xff0c;往后的java篇會越來越難&#xff0c;希望大家能夠堅…

P2p網絡性能測度及監測系統模型

P2p網絡性能測度及監測系統模型 網絡IP性能參數 IP包傳輸時延時延變化誤差率丟失率虛假率吞吐量可用性連接性測度單向延遲測度單向分組丟失測度往返延遲測度 OSI中的位置-> 網絡層 用途 面相業務的網絡分布式計算網絡游戲IP軟件電話流媒體分發多媒體通信 業務質量 通過…

運維檢查:mysql表自增id是否快要用完

數據庫表中最大自增ID用完會報錯。判斷是否接近或達到自增ID類型的最大值&#xff1a;? 對于MySQL中的自增ID&#xff0c;?如果使用的是int類型&#xff0c;?其無符號&#xff08;?unsigned&#xff09;?的最大值可以達到2^32 - 1&#xff0c;?即4294967295。?如果使用的…

python編程:從入門到實踐(第三版) 筆記

文章目錄 資源網站:https://www.ituring.com.cn/book/3038配置VSCode推薦資源網站推薦資源網址 資源網站:https://www.ituring.com.cn/book/3038 配置VSCode 推薦資源網站 推薦資源網址 英文版主頁&#xff1a; https://ehmatthes.github.io/pcc_3e 中文版主頁&#xff1a; h…

上市公司企業共同機構所有權數據、機構交叉持股數據(2005-2023)

數據來源&#xff1a;基礎數據來源于上市公司企業年報 時間跨度&#xff1a;2005-2023年 數據范圍&#xff1a;企業層面 數據指標&#xff1a; 參考《中國工業經濟》杜勇&#xff08;2021&#xff09;老師的做法&#xff0c;從 3 個維度構造指標反映上市公司共同機構所有權&…

Vue和Element UI 路由跳轉

在Vue.js中&#xff0c;使用Vue Router可以方便地實現頁面之間的路由跳轉。Element UI是一個基于Vue 2.0的桌面端組件庫&#xff0c;它本身并不直接提供路由跳轉的功能&#xff0c;但你可以在使用Element UI的Vue項目中結合Vue Router來實現這一功能。 以下是一個基于Vue和Ele…