ARTS 第一周打卡


ARTS

目錄

A: Algorithm,每周至少做一道 Leetcode
R: Review,閱讀并點評至少一篇英文文章
T: Tips,學習至少一個技術技巧
S: Share,分享一篇有觀點和思考的技術文章

? 堅持一周獎勵自己一個雞排吃!?

第一周(11-24 至 11-29)

A:

題目:只出現一次的數字

標簽:位運算、哈希表

這道題比較簡單,上來就能想到異或運算,兩個相同的數異或為 0,任何數與 0 異或都是它本身。

    public static int singleNumber(int[] nums) {
        int result = 0;
        for (int i : nums) {
            result ^= i;
        }
        return result;
    }
fun singleNumber(nums: IntArray): Int {
    var result = 0
    nums.forEach { i ->
        result = result xor i
    }
    return result
}

R:

20 Things Most People Learn Too Late In Life

大多數人在一生中學的比較晚的二十件事,比較有深刻印象的是以下幾條:

  1. Spontaneity is the sister of creativity.

    自發力是創造力的姐妹。做事情需要自己主動,我也那種很煩別人 push 我的那種。

  2. Most people don't do what they love.

    大多數人都在做他們不喜歡做的事。的確是,生為一個打工人就應該有打工人覺悟(狗頭)。作者想表達的意思其實是 “群眾” 是那些沒有過上自己想要的生活,他們沒有足夠的努力。當隨著年紀的增長,環顧四周,和他們一樣的人越多也就越早相信大家都是一樣的。

  3. Many stop reading after college.

    很多人在大學后就停止閱讀了。害,現在印象深刻的讀完的一本書還是去年讀的初小軌的《自律的人生不孤獨》,一本讀起來很放松的書。今年馬馬虎虎看完了幾本技術書,課外書基本沒怎么看過。現在跳槽了,在當前公司更是時間被嚴重壓縮,還是需要給自己擠出時間放空自己,讀書就是一個很好的方式。

    而且我發現,現在越來越少的人會去看文章了,我在上大學那會,掘金、簡書也還是比較火的平臺,也會有不少人去寫技術博客,去看去評論。現在再去看,已經明顯減少了,一篇文章五十個贊都算多的。我想這其中也少不了 996 的干系。

  4. You potential is directly correlated to how well you know yourself.

    你有多了解自己直接關系到你的潛力。這句話不能在贊同了,知道自己的劣勢勤能補拙,知道自己的優勢最大發揮。

T:

分享今天學到的一個知識點:單向散列函數。

什么是單向散列函數呢?

其實可以拆分為兩部分講,單向函數是指正向計算容易,逆向運算困難的函數。也就是說,給你一個輸入,你能夠很容易計算出輸出,但是給你輸出,你卻很難計算出輸入。在《應用密碼學》有一個很生動的例子來解釋單向函數。把盤子打碎很容易,但是再把這些碎片拼接成一個完整的盤子就是一件非常困難的事情了。

散列函數又叫哈希函數,是一個可以把任意大小的數據,轉化成固定長度的數據(哈希值)。好的散列函數的是碰撞困難且散列值均勻分布。

那么單向散列函數就是既是一個單向函數又是一個散列函數,它最要緊的有兩點,逆向運算困難和構造碰撞困難。單向散列函數有一個雪崩效應的特點,即微小的輸入數據變化就能導致輸出數據的巨大變化。

單向散列函數能夠解決完整性問題。

S:

20 Things Most People Learn Too Late In Life

單向散列函數:如何保證信息完整性?

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容