close

 

 

 

Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.

You must implement a solution with a linear runtime complexity and use only constant extra space.

 

Example 1:

Input: nums = [2,2,1]
Output: 1

Example 2:

Input: nums = [4,1,2,1,2]
Output: 4

Example 3:

Input: nums = [1]
Output: 1

 

Constraints:

  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • Each element in the array appears twice except for one element which appears only once.

 

 

 

 

 

 

 

 

 

 

 

 

int singleNumber(vector<int>& nums) {
    
    unordered_map<int, int> temp_map;
    for (auto x : nums)
        temp_map[x]++;
    for (auto y : temp_map)
    {
        if (y.second == 1)
            return y.first;
    }
    return -1;
}

image

image

 

 

 

 

其實我每個月都有給自己一個小小的目標, 就是念一本書, 隨便一本的那種, 標準寬鬆到就算是漫畫我都認....; 

而本月的書單到比較正經點, 書名叫 " 正向專注力 ", 而藉由這篇文章, 我想分享一些讀書心得( ? )...., 雖然說這個BLOG是寫一些技術相關的, 但更多的我還是想要把這個當成是我的小日記一樣的東西, 所以如果只想看技術類的, 就到這邊跳過吧.

 

正文開始; 這本書的第一張節提到, 為什麼我們會心智脆弱 ?

 

作者指出, 這是因為我們與生俱來的本能習性, 就是執著於問題, 我們針對問題解決問題, 並且為了未知的事情恐懼, 我們享受成功的同時也害怕失敗帶來的後果, 所以我們瞻前顧後; 而人們鍛鍊肌肉的同時, 卻往往忘記鍛鍊內心, 導致內心肌群不夠強壯, 以至於在某些時候會出現脆弱的情形.

 

再來作者也提到, 如果你是那種腦裡全都是問題和負面想法的人, 其實你不是不正常, 你很正常, 只是有一天你會被你的正常給害死, 你的正常會吞噬掉你的快樂, 健康, 成功, 並且對你的人生造成無可挽回的阻礙.

 

而對抗以問題為中心的想法, 第一步驟就是要識別它, 作者指出, 如果我們心智只專注在某件特定事情上, 一直不斷的聚焦, 最後你就會無法採取行動, 難以加以改善, 舉個例子, 就像是這一篇的解法, 其實我很快就想出來最糟解了, 那就是幾個迴圈, 然後將重複的從vector去除掉, 這樣留下來的, 就會是單獨的了; 而當這個想法萌芽的時候, 其實工程師的慣性思維就會開始去想要怎麼樣實現, 然後振筆疾飛的開始Coding, 說真的, 幾年前的我也是這樣, 想出一個方式之後, 開始狂幹猛幹, 最後東補西改, 有多少Code是被注釋掉不用的.

 

然而, 近幾年開始隨者年紀的增長, 到也沒有這麼莽撞, 開始會懂得停下來先想有什麼方式了, 於是, 我從上面那個除掉, 想到既然我只要一個, 那是不是其他只要兩個的我都不要, 所以我是不是可以有一個地圖( map ), map<key: element, value : frequency> , 我先將所有元素放到key裡面, 然後去看每一個元素只要出現次數為1次的, 那就是我要的答案了啊 !!!

 

所以我只需要兩個步驟就可以了, 

1. map<key: element , value : Frequency >

2. return the key whose value = 1 

這樣就可以了, 所以才有了我想法裡面的最佳解.

image

 

這就是為什麼我會去翻翻其他非技術書的原因了, 透過書本的觸類旁通, 其實可以讓自己的思考變的更不一樣, 而我也認為大道至簡, 不論任何知識, 只要鑽研夠深, 就能觸類旁通; 雖然我也沒辦法告訴很具體的去告訴其他人這是有用的, 但對於我來說, 多念一本書, 多看看這些學者的嘔心力作, 到也是花最小成本得到最大收穫的一件高CP值的事情呀.

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()