在leetcode(https://leetcode-cn。com/)上看到一道有趣的演算法題:
輸入一個遞增排序的陣列和一個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。
示例 1:
輸入:nums = [2,7,11,15], target = 9
輸出:[2,7] 或者 [7,2]
示例 2:
輸入:nums = [10,26,30,31,47,60], target = 40
輸出:[10,30] 或者 [30,10]
限制:
1 <= nums。length <= 10^5
1 <= nums[i] <= 10^6
這樣的題你會怎麼用java實現呢?
分享一下我的解題思路:
public int[] twoSum(int[] nums, int target) { int[] result=new int[2]; Map 結果: 輸入:[2,7,11,15] 9 輸出:[2,7] leetcode上對該答案的分析如下: 36 / 36 個透過測試用例 狀態: 透過 執行用時: 54 ms 記憶體消耗: 57.7 MB 執行用時分佈圖表 執行消耗記憶體分佈圖表 大家有更好的解題思路嗎?歡迎在評論區作答哈~