1. 程式人生 > 實用技巧 >Android Verified Boot介紹與有關使用

Android Verified Boot介紹與有關使用

技術標籤:演算法演算法leetcode

系列文章目錄

故心故心故心故心小故衝啊


文章目錄


題目:劍指 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

我們只需要找出值為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] } }

在這裡插入圖片描述