iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
自我挑戰組

30天刷題大挑戰系列 第 2

第 01 天 小試身手由簡入深 ( leetcode 001 )

JavaScript 解答

var twoSum = function (numbers, target) {
        /** 先判斷陣列長度 **/
  for (var i = 0; i < numbers.length - 1; i++) {
        /** 迴圈判讀 **/
    for (var j = i + 1; j < numbers.length; j++) {
        /** 找出條件等於參數的陣列內值的總和的兩個索引值 **/
    if (numbers[i] + numbers[j] === target) return [i, j];
        }
    }
};

var twoSum2 = function (numbers, target) {
    var map = {};
         /** 先判斷陣列長度 **/
    for (var i = 0; i < numbers.length; i++) {
        
        var n = numbers[i];
        if (map[target - n] !== undefined) {
            return [map[target - n], i];
        } else {
            map[n] = i;
        }
    }
};

console.log(twoSum([2, 11, 15, 7], 9));
console.log(twoSum2([2, 7, 11, 15], 9));
console.log(twoSum2([2, 7, 11, 15], 26));
console.log(twoSum2([2, 7, 11, 15], 26));

Ruby 解答

def two_sum(nums, target)
    map = {}
    index = 0
    nums.each{|num| map[(target-num)]=index;index+=1}
    puts map
    for i in 0..nums.size
        print i,nums[i],map[nums[i]]
        if map[nums[i]] && i!=map[nums[i]]
            return [i,map[nums[i]]]
        end
    end
    return []
end

上一篇
前言:從零開始的程式學習之旅
下一篇
第 02 天 循序漸進加深難度( leetcode 002 )
系列文
30天刷題大挑戰16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言