日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何處理leetcode136只出現(xiàn)一次的數(shù)字

本篇文章為大家展示了如何處理leetcode136只出現(xiàn)一次的數(shù)字,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

涇源網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,涇源網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為涇源數(shù)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的涇源做網(wǎng)站的公司定做!

“好”算法的標(biāo)準(zhǔn)

對于一個問題的算法來說,之所以稱之為算法,首先它必須能夠解決這個問題(稱為準(zhǔn)確性)。其次,通過這個算法編寫的程序要求在任何情況下不能崩潰(稱為健壯性)。如果準(zhǔn)確性和健壯性都滿足,接下來,就要考慮最重要的一點:通過算法編寫的程序,運行的效率怎么樣。

運行效率體現(xiàn)在兩方面:

  • 算法的運行時間。(稱為“時間復(fù)雜度”)

  • 運行算法所需的內(nèi)存空間大小。(稱為“空間復(fù)雜度”)

好算法的標(biāo)準(zhǔn)就是:在符合算法本身的要求的基礎(chǔ)上,使用算法編寫的程序運行的時間短,運行過程中占用的內(nèi)存空間少,就可以稱這個算法是“好算法”。

描述

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

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

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

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

題解

  • 思路

使用額外HashMap來存儲每一個數(shù)組元素,最后取出個數(shù)為1的那一個(看到題目,實在沒有啥好思路,這個方法運行效率肯定非常低)

  • 代碼實現(xiàn)

class Solution {
    public int singleNumber(int[] nums) {
        Map temp = new HashMap<>();

		for (int i : nums) {
			temp.put(i, temp.get(i) == null ? 1 : temp.get(i) + 1);
		}
		for (int i : nums) {
			if (temp.get(i) == 1) {
				return i;
			}
		}
		return 0;
    }
}
  • 復(fù)雜度分析

  1. 時間復(fù)雜度:O(n+n) = O(n)。 for 循環(huán)的時間復(fù)雜度是 O(n)。

  2. 空間復(fù)雜度:O(n)。hashmap需要的空間跟nums中元素個數(shù)相等。

  • 執(zhí)行結(jié)果

如何處理leetcode136只出現(xiàn)一次的數(shù)字

最優(yōu)解:位操作

  • 思路

  1. 任何數(shù)與0異或為其本身:0 ^ n => n

  2. 相同的數(shù)異或為0: n ^ n => 0

  3. XOR(異或) 滿足交換律和結(jié)合律:a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b

所以我們只需要將所有的數(shù)進行 XOR 操作,得到那個唯一的數(shù)字。

  • 代碼實現(xiàn)

class Solution {
    public int singleNumber(int[] nums) {
        int result = 0;
        for(int i : nums) {
            result^=i;
        }
        return result;
    }
}
  • 復(fù)雜度分析

  1. 時間復(fù)雜度:O(n)。只需要將nums元素遍歷一遍,所以時間復(fù)雜度為nums中元素的個數(shù)。

  2. 空間復(fù)雜度:O(1)。

執(zhí)行結(jié)果

如何處理leetcode136只出現(xiàn)一次的數(shù)字

上述內(nèi)容就是如何處理leetcode136只出現(xiàn)一次的數(shù)字,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享題目:如何處理leetcode136只出現(xiàn)一次的數(shù)字
網(wǎng)站鏈接:http://www.dlmjj.cn/article/jgspdi.html