1.類型:位運(yùn)算
2.描述:
image.png
3.思路
最初自己看到題的想法:把這個(gè)數(shù)組循環(huán)存到對(duì)象中倒槐,值作為鍵惕艳,次數(shù)作為值。然后循環(huán)找到值為1的鍵晨缴。
4.代碼
解法1:排序
先對(duì)數(shù)組排序译秦,然后循環(huán)遍歷這個(gè)數(shù)組,判斷i和i+1位置上的元素是否相等击碗,如果相等筑悴,根據(jù)所給k值,改變i的值(將下標(biāo)直接改變到和第k個(gè)的第i個(gè)元素稍途,通過(guò)i++遍歷的元素就到了下一個(gè)不同的元素)阁吝;如果不等,那就直接返回arr[i]這個(gè)元素械拍。
function foundOnceNumber( arr , k ) {
// write code here
arr.sort();
for(let i = 0; i < arr.length - 1; i++) {
if (arr[i] == arr[i + 1]) {
i += k -1;
}else {
return arr[i];
}
}
return arr[arr.length - 1];
}
module.exports = {
foundOnceNumber : foundOnceNumber
};
為什么i += k -1;突勇?根據(jù)不同的k值找出的規(guī)律,最后一個(gè)相同的下標(biāo)是坷虑,i= i+k-1
image.png
image.png