Android Verified Boot介紹與有關使用
阿新 • • 發佈:2020-12-18
系列文章目錄
故心故心故心故心小故衝啊
文章目錄
題目:劍指 Offer 56 - II. 陣列中數字出現的次數 II
在一個數組 nums 中除一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。
示例 1:
輸入:nums = [3,4,3,3]
輸出:4
示例 2:
輸入:nums = [9,1,7,9,7,9,7]
輸出:1
解法一:map
使用map has 特性 來判斷是否存在相同的, 若存在相同的則它的值為1,否為為0
var singleNumber = function(nums) {
// map解法 has方法
var map = new Map();
for(var i =0; i<nums.length;i++){
if(map.has(nums[i])){
//存在
map.set(nums[i],1);
}
else{
//不存在
map.set(nums[i],0);
}
}
//將值為0的找出來就行
for(var i =0; i<nums.length;i++){
if(map.get(nums[i])===0){
return nums [i];
}
}
};
解法二:indexOf與lastIndexOf解法
Array:陣列同樣有indexOf 方法,只不過做型別判斷時,使用的嚴格相等(strict equality),也就是 === 。
匹配成功後返回索引值
沒有匹配成功則返回-1
var singleNumber = function(nums) {
for (let i = 0; i < nums.length; i++) {
if (nums.indexOf(nums[i]) === nums.lastIndexOf(nums[i])) return nums[i]
}
}