最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端JavaScript算法找出只出現(xiàn)一次的數(shù)字

 更新時(shí)間:2022年07月09日 08:59:37   作者:掘金安東尼  
這篇文章主要為大家介紹了前端JavaScript算法找出只出現(xiàn)一次的數(shù)字的算法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目:只出現(xiàn)一次的數(shù)字

給定一個(gè)非空整數(shù)數(shù)組,除了某個(gè)元素只出現(xiàn)一次以外,其余每個(gè)元素均出現(xiàn)兩次。找出那個(gè)只出現(xiàn)了一次的元素。

說(shuō)明:

你的算法應(yīng)該具有線性時(shí)間復(fù)雜度。 你可以不使用額外空間來(lái)實(shí)現(xiàn)嗎?

示例 1:

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

示例 2:

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

解:

第一個(gè)反應(yīng)用 map 來(lái)解,時(shí)間復(fù)雜度 O(n),是線性的,滿足題意,只不過(guò)空間復(fù)雜度消耗是 O(n),怎樣降低空間復(fù)雜度,在方法二中講;

解法一:用 map 來(lái)解:

/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function(nums) {
   let map = new Map();
    for(let i = 0; i<nums.length;i++){
        if(map.has(nums[i])){
            map.set(nums[i],map.get(nums[i])+1);
        }else{
            map.set(nums[i],1)
        }
    }
    for(let [key,value] of map.entries()){
        if(value===1){
            return key
        }
    }

};

解法二:用 異或 解

重點(diǎn)當(dāng)然就是在怎么理解:不使用額外空間來(lái)實(shí)現(xiàn)

其實(shí)就是就要在數(shù)組本身上進(jìn)行操作,異或操作可以幫助我們實(shí)現(xiàn)這一點(diǎn);

異或(eor)是一個(gè)數(shù)學(xué)運(yùn)算符。它應(yīng)用于邏輯運(yùn)算。兩個(gè)相等的數(shù)異或?yàn)?;兩個(gè)值不相同,則異或結(jié)果為1;一個(gè)不為0的數(shù)與0異或?yàn)檫@個(gè)數(shù)本身;

/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function(nums) {
  for (var i = 1; i < nums.length; i++) {
    nums[0] = nums[0] ^ nums[i];    // 把所有的元素都異或到nums[0]上。
  }
  return nums[0];
};

以上就是前端JavaScript算法找出只出現(xiàn)一次的數(shù)字的詳細(xì)內(nèi)容,更多關(guān)于JavaScript算法只出現(xiàn)一次數(shù)字的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解決React中的re-render問(wèn)題

    解決React中的re-render問(wèn)題

    這篇文章主要介紹了解決React中的re-render問(wèn)題,相信很多人都遇到過(guò)。接下來(lái)給大家具體講講這個(gè)問(wèn)題,需要的朋友可以參考y一下,洗碗給對(duì)你有所幫助
    2022-01-01
  • JS 里為什么會(huì)有 this

    JS 里為什么會(huì)有 this

    這篇文章主要介紹了JS 里為什么會(huì)有 this,文章主要從語(yǔ)言創(chuàng)造者(JS 之父的角度)來(lái)思考 this,我之前那篇講 this 的文章是從使用者的角度寫(xiě)的,需要的朋友可以參考一下
    2021-10-10
  • js?websocket斷線重連實(shí)例代碼

    js?websocket斷線重連實(shí)例代碼

    這篇文章主要為大家介紹了js?websocket斷線重連實(shí)例代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • JS中輕松遍歷對(duì)象屬性的幾種方式

    JS中輕松遍歷對(duì)象屬性的幾種方式

    這篇文章主要給大家介紹的是JS中輕松遍歷對(duì)象屬性的幾種方式,文章從自身可枚舉屬性、Object.values() 返回屬性值、Object.entries()來(lái)展開(kāi)介紹,感興趣的小伙伴可以參考一下
    2021-09-09
  • 羊了個(gè)羊的中強(qiáng)大的Grid布局

    羊了個(gè)羊的中強(qiáng)大的Grid布局

    這篇文章主要為大家介紹了羊了個(gè)羊的中強(qiáng)大的Grid布局詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • JavaScript異步操作中串行和并行

    JavaScript異步操作中串行和并行

    這篇文章主要介紹了JavaScript異步操作中串行和并行,主要內(nèi)容是寫(xiě)一下js中es5和es6針對(duì)異步函數(shù),串行執(zhí)行和并行執(zhí)行的方案。已經(jīng)串行和并行結(jié)合使用的例子。,需要的朋友可以參考一下
    2021-11-11
  • 微信小程序左滑刪除效果的實(shí)現(xiàn)代碼

    微信小程序左滑刪除效果的實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信小程序左滑刪除效果的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • next.js源碼解析getStaticProps?getStaticPaths使用場(chǎng)景

    next.js源碼解析getStaticProps?getStaticPaths使用場(chǎng)景

    這篇文章主要為大家介紹了next.js源碼解析getStaticProps?getStaticPaths使用場(chǎng)景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • TypeScript基礎(chǔ)類(lèi)型介紹

    TypeScript基礎(chǔ)類(lèi)型介紹

    這篇文章主要介紹了TypeScript基礎(chǔ)類(lèi)型,布爾值、數(shù)字、字符串、任意類(lèi)型等多種類(lèi)型,下面我們就來(lái)看看這些類(lèi)型的詳細(xì)介紹,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • 9種使用Chrome Firefox 自帶調(diào)試工具調(diào)試javascript技巧

    9種使用Chrome Firefox 自帶調(diào)試工具調(diào)試javascript技巧

    這篇文章主要介紹了9種使用Chrome Firefox 自帶網(wǎng)頁(yè)調(diào)試工具調(diào)試javascript技巧
    2017-12-12

最新評(píng)論

吕梁市| 察隅县| 兴仁县| 抚顺县| 西畴县| 云梦县| 张家港市| 宜兰县| 静乐县| 和林格尔县| 乐陵市| 揭东县| 马尔康县| 海盐县| 西贡区| 灵山县| 虎林市| 鄂州市| 乌鲁木齐市| 香港| 师宗县| 吉木乃县| 长沙县| 通城县| 彩票| 台南市| 塔河县| 苏州市| 木兰县| 剑阁县| 东方市| 恩平市| 河南省| 洪雅县| 荃湾区| 桑日县| 仁寿县| 吉首市| 兰西县| 高阳县| 德阳市|