iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0

Day11 Leetcode Array系列---- Find the Duplicate Number

本次題目 Find the Duplicate Number by JS

找出陣列中重複的元素

input1 = [1,3,4,2,2]
output1 = 2

input2 = [3,1,3,4,2]
output2 = 3

思考路線

  1. 要找陣列中重複元素,我打算用 filter
  2. 找的方式是用從 filter 撈出的元素,查詢他們在陣列中的索引位置 (indexOf) 有沒有等於一起撈出的 index

Coding Time

用 filter 撈元素與索引,配合 indexOf 去查元素索引,把查出的元素索引與一起撈出的 index 比對,如果不相等就代表陣列中有重複元素,因為 indexOf 查出的元素會是第一次出現在陣列中的位置

input1 = [1,3,4,2,2]
output1 = 2

input2 = [3,1,3,4,2]
output2 = 3

function findDuplicate (ary){
    a = ary.filter( (x,index) => { if(ary.indexOf(x) !== index){ return x }})

    return a
}

function expect(a,b){
    console.log( a == b )
}

expect(findDuplicate(input1),output1)

這個時候會發現,測試一直印出 false,直到我 console.log(a) 才發現, a 是陣列,所以把 a 轉成數字

input1 = [1,3,4,2,2]
output1 = 2

input2 = [3,1,3,4,2]
output2 = 3

function findDuplicate (ary){
    a= ary.filter( (x,index) => { if(ary.indexOf(x) !== index){ return x }})

    return parseInt(a)
}

function expect(a,b){
    console.log( a == b )
}

expect(findDuplicate(input1),output1)

今天到此為止,有任何問題請在下方留言或透過email、GitHub聯絡我,感謝閱讀

Daily kitty


上一篇
Day 10 -- Contains Duplicate II
下一篇
Day 12 -- Move Zeroes
系列文
菜雞的30天工程師轉職日記--Leetcode30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言