日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

leetcode算法题01

發布時間:2025/6/15 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode算法题01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近求職需要重新刷算法題,從今天開始每天至少做一個leatcode的題
如果有更好的算法或者換了語言也會更新

  • 題目:

給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數。

你可以假設每個輸入只對應一種答案,且同樣的元素不能被重復利用。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

  • 解法 :

官方給了三種解法:

  • 是暴力循環,想的簡單,易于理解,但是如果數組里元素很多的話就很卡,復雜度分析:
    時間復雜度:O(n^2) ), 對于每個元素,我們試圖通過遍歷數組的其余部分來尋找它所對應的目標元素,這將耗費 O(n) 的時間。因此時間復雜度為 O(n^2)。
    空間復雜度:O(1)。

  • 是用哈希表循環兩遍,第一遍是錄入哈希表,第二遍再循環找一遍,
    復雜度分析:

    時間復雜度:O(n), 我們把包含有 nn 個元素的列表遍歷兩次。由于哈希表將查找時間縮短到 O(1),所以時間復雜度為 O(n)。

    空間復雜度:O(n), 所需的額外空間取決于哈希表中存儲的元素數量,該表中存儲了 n個元素。

  • 是用哈希表循環一遍,在第一遍時一邊錄入一邊排查,之前面試也碰到過這道題,當時面試官給的解法就是這種,相對理想
    復雜度分析
    時間復雜度:O(n), 我們只遍歷了包含有 nn 個元素的列表一次。在表中進行的每次查找只花費 O(1) 的時間。
    空間復雜度:O(n), 所需的額外空間取決于哈希表中存儲的元素數量,該表最多需要存儲 n 個元素。

  • 代碼

var twoSum = function(nums, target) {var result=[];var test=new hashTable();// var i=0;nums.forEach(function(item,index){// console.log("success" +index);if(test.containsKey(target-item)&&item==(target-item)){result.push(test.getValue(target-item),index);test.remove(target-item);// console.log("same");} else {test.add(item,index);if(test.containsKey(target-item)&&index!==test.getValue(target-item)){// result.push([test[item],test[target-item]]);result.push(test.getValue(target-item),test.getValue(item));test.remove(item);test.remove(target-item);// console.log("delete");}}});return result; };
  • 心得

題不難,主要是練習通過哈希表的排序是怎么用js實現的,哈希表的搜索簡單快捷,實現起來也不難。之前沒用js做過。
在調試的過程中出現了2回問題

  • 剛開始我只是想把數組的值作為key,序號作為value,沒有考慮當兩個值都是一樣的時候哈希表會覆蓋,報了一回錯,加了個if判斷了一下,就解決了

  • 數據范圍考慮不全。沒有考慮給的和等于他本身時的情況,報了一回錯,加了個if判斷了一下,就解決了。

  • 更新

  • 未來想用python實現一下,算法方面應該沒什么可優化的了。

轉載于:https://www.cnblogs.com/dadaochangcun/p/9806574.html

總結

以上是生活随笔為你收集整理的leetcode算法题01的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。