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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

力扣启蒙 - 开启算法的世界

發布時間:2023/12/4 50 生活家
生活随笔 收集整理的這篇文章主要介紹了 力扣启蒙 - 开启算法的世界 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方 Java學習之道,選擇 設為星標

每天18:30點,干貨準時奉上!

Part1力扣

刷力扣,刷力扣,力扣究竟是什么呢?

力扣(LeetCode)是領扣網絡旗下專注于程序員技術成長和企業技術人才服務的品牌。源自美國硅谷,力扣為全球程序員提供了專業的IT技術職業化提升平臺,有效幫助程序員實現快速進步和長期成長。

而刷力扣也就是在力扣的題庫里刷算法題。

Part2力扣啟蒙

下面來引入力扣的啟蒙題來感受一下算法題的魅力吧。

1力扣第一題:

兩數之和

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

你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素在答案里不能重復出現。

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

2解題思路

  • 暴力解法

很多人新手看到這些題目,第一眼就是暴力跑法對吧? 但是都來練算法了暴力破解不是在真的沒辦法的情況下就算了。

  • 哈希映射

讓我們來看看這道題比較優等的解法吧 (算法只有更好,沒有最好)

什么是哈希映射

哈希表的結構就是鍵值對的形式 >> [key -- value] 我們可以利用這個特殊的數據結構來處理我們這道題目

先來看看 Java的 HashMap API 中一個 方法.

方法要求傳入一個鍵,會返回在該哈希表中是否存在跟傳入的鍵對應的映射關系. 也就是說我們可以將沒有找的數組元素放進哈希表中,讓后面的元素去匹配。

利用for循環來處理題目給出的數組,題目給出了一個 target, 我們就利用這個 target 和 數組中的數字相減來得到一個目標值,然后在哈希表中查找是否有這個值,有則可以找到題目所要的兩個目標索引,沒有找到的話就將值再 put 進表中。

題解

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};}/*?遍歷開始時為空表,就直接將第一個元素put進表?*//*?沒有找到對應的映射就進行put?*/map.put(nums[i],?i);}/*?數組中沒有符合的兩個數字的情況,但是題目已經幫我們排除了這個可能性?*/return?null;}

測試結果

該測試結果是在IDEA中通過 leetcode 插件自動生成題目提交測試代碼的,不會使用 leetcode插件的也可以通過?[刷leetcode神器] IDEA 插件 leetcode editor?查看。

-- END?--

總結

以上是生活随笔為你收集整理的力扣启蒙 - 开启算法的世界的全部內容,希望文章能夠幫你解決所遇到的問題。

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