給定長度爲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