Algorithm
本周算法:136.只出現(xiàn)一次的數(shù)字
這次算法題因為受第一周算法的影響,以及它的題目描述中的“你可以不使用額外空間來實現(xiàn)嗎?”,于是我就采用了排序加循環(huán)比較的方式。
我的題解思路:首先,先讓數(shù)組進行排序,排序完后,進行循環(huán)比較,在每次循環(huán)開始前,我會設置一個值為false的Boolean標記,從索引0開始,將相鄰的兩個數(shù)同中間的一個數(shù)比較,如果相同將標記置為false,如果不同將標記置為true。在單次循環(huán)的最后判斷標記,如果為true,則為答案,如果為false則繼續(xù)循環(huán)。在這里要注意兩個臨界值,首先是索引0的左邊界值,及索引為length - 1的右邊界值。
Review
本周閱讀文章:“The Key To Accelerating Your Coding Skills”
這篇文章主要講述了,在學習編程的過程中,如果去快速的通過自己編程的拐點,通過這個拐點之后,自身的變成技能將會得到質(zhì)的提升,但是在這個階段時,會經(jīng)歷很多讓你覺得很艱難的事情,甚至讓你想放棄,但只要堅持下來,就一定可以通過的。
Tip
受本周算法的影響,我發(fā)現(xiàn)了二進制數(shù)真的很神奇,我自己的題解耗時9ms,但是使用二進制的異或運算竟然僅僅花費1ms。但是細想,這也合情合理,畢竟計算機本身就是二進制,這就是計算機最擅長的事情啊。
0異或任何數(shù)=任何數(shù)
1異或任何數(shù)-任何數(shù)取反
任何數(shù)異或自己=把自己置0
Share
啟發(fā)很大,必須分享!
The Key To Accelerating Your Coding Skills