leetcode題解(七)

給定長度爲n的數組,找出重複次數最多的元素。 重複最多的元素是出現超過⌊n /2⌋倍的元素。

您可以假設該數組非空,並且重複最多的元素始終存在於數組中。

例1:

輸入:[3,2,3]
輸出:3
例2:

輸入:[2,2,1,1,1,2,2]
輸出:2

    var majorityElement = function(arr){
      var num = arr[0],
      count = 1
      for (let i = 1; i < arr.length; i++) {
          if(count===0){
            num=arr[i]
          }
          if(num===arr[i]){
            count++
          }else{
            count--
          }
      }
      return num
    }

    var arr =[2,2,1,1,1,2,2]
    majorityElement(arr)
    // 2

 

給定一個整數數組和一個整數k,找出數組中是否存在兩個不同的索引i和j,使得nums [i] = nums [j]並且i和j之間的絕對差值最多爲k。
例1:
輸入:nums = [1,2,3,1],k = 3
輸出:true
例2:
輸入:nums = [1,0,1,1],k = 1
輸出:true
例3:
輸入:nums = [1,2,3,1,2,3],k = 2
輸出:false

 

var containsNearbyDuplicate = function(arr, k){
    var hashMap = {}
    for(var i = 0; i < arr.length; i++) {
        if(hashMap[arr[i]]!==void(0) && i - hashMap[arr[i]] <= k) {
            return true
        } else{
            hashMap[arr[i]] = i
        }
    }
    return false
}

var arr = [1,2,3,1], k = 3
containsNearbyDuplicate(arr, k)
//true

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章