Algorithm
隻出現一次的數字
給定一個非空整數數組,除了某個元素隻出現一次以外,其餘每個元素均出現兩次。找出那個隻出現了一次的元素。
說明:
你的算法應該具有線性時間複雜度。 你可以不使用額外空間來實作嗎?
示例 1:
輸入: [2,2,1]
輸出: 1
示例 2:
輸入: [4,1,2,1,2]
輸出: 4
剛接觸這類型的題目,連時間複雜度,和空間複雜度是什麼都不太清楚,查了下資料才知道。
時間複雜度,為線性就是,可以有單次循環,不能有嵌套循環,因為嵌套循環涉及到了平方,就是不是線性的了。
Tip
java 中 的異或運算
運算規則:兩個書轉化成二進制,從高位開始比較,相同為0,不同1
比如:
比如:8^11.
8轉為二進制是1000,11轉為二進制是1011.從高位開始比較得到的是:0011.然後二進制轉為十進制,就是Integer.parseInt("0011",2)=3;
參考文章: http://www.cnblogs.com/yesiamhere/p/6675067.html
還有篇,講解什麼是時間複雜度的文章:https://blog.csdn.net/qq_41523096/article/details/82142747
這周其他的沒有做到
轉載于:https://www.cnblogs.com/prader6/p/10787907.html