先說在前面
本人學 Ruby 約 2 個月左右
之前沒有寫程式背景也非相關科系
解法不見得是最好或觀看的你有更好的解法
歡迎在文章或影片下方留言交流
說到刷題,得介紹下知名網站有 LeetCode 及 Codewars
對於新手來說, 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
4Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
影片解題過程
初次錄影解題,超害羞
傷害到各位眼睛及耳朵
先多多包涵
解題:
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/