【ruby】leetcode 练习 :Two Sum

题目:给定一阵列和目标值,回传阵列中两数相加等于目标值的阵列位址,数值不可重複使用。(假设阵列中一定有两数相加等于目标值)

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

解法:
建立检查阵列,把补数设为key,value纪录当前阵列位址,当补数的key出现,则回传先前纪录对应补数的阵列位址以及当前阵列位址。

def two_sum(nums, target)    check ={}    index = 0    nums.each do |num|        if check[num]            return[check[num],index]                                                              end        complement = target - num        check[complement] = index        index += 1    end end

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章