你必須很努力

從經典 LeetCode 開始吧 - Two Sum

2019/09/11
字數統計: 397閱讀時間: 1 min

先說在前面
本人學 Ruby 約 2 個月左右
之前沒有寫程式背景也非相關科系
解法不見得是最好或觀看的你有更好的解法
歡迎在文章或影片下方留言交流


說到刷題,得介紹下知名網站有 LeetCodeCodewars
對於新手來說, Codewars 是個不錯選擇,能培養自信心,逐漸增加強度
想直接摧毀信心的話 LeetCode 是個好選擇(誤
LeetCode 題目有的須考量時間複雜度 對目前菜逼巴的我來說很不簡單,甚至是解不出來
看著網路解題答案時,不見得能理解答案為什麼是這樣寫
今天這題經典題 Two Sum 就是很好的例子


讓我試著以我的方式解讀題目
並試著解說給大家分享
如有資訊傳遞錯誤
歡迎不吝嗇鞭我 (是多抖 M


題目
Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

1
2
3
4
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].


影片解題過程 Yes

初次錄影解題,超害羞
傷害到各位眼睛及耳朵
先多多包涵


解題:

1
2
3
4
5
6
7
8
9
10
11
12
13
# @param {Integer[]} nums
# @param {Integer} target
# @return {Integer[]}
def two_sum(nums, target)
hash = {}
nums.each_with_index { |number, index| hash[number] = index }
nums.each_with_index do |number, index|
difference = target - number
if hash[difference] && hash[difference] != index
return [hash[difference], index]
end
end
end

本文同步發布於 小菜的 Blog https://riverye.com/

原文連結:https://riverye.com/2019/09/11/從經典-LeetCode-開始吧-Two-Sum/

發表日期:2019-09-11

更新日期:2019-10-09

CATALOG