原创 算法與數據結構(一)開篇

經歷過長久的停滯,碼字的念頭又跳回到我的大腦。可能是希冀記錄一下自己人生,畢竟人這一生如落花似流水;可能是受朋友激發,發現原來身邊也有同行者,在寫作上不再孤獨;可能是主動總結一下生活和技術經驗,算是對一段時間內的自己做下整理,就像把信息當

原创 算法與數據結構(五)哈希表

在講哈希表之前,我們先來看看往一個數組插入數據的過程。 確認插入數據的下標; 把數據放入數組。 拿日常生活中根據身高排隊的例子來說,我們想獲取到從低到高的姓名列表。我們就是在重複這樣一個過程: 找到剩餘隊伍中身高最低人的姓名; 放入

原创 算法與數據結構(二)如何學習

在上文 面試指北:算法與數據結構(一)開篇 中講了爲什麼學習算法與數據結構和它包括哪些內容。 概括來說,掌握算法與數據結構之後,我們會更容易跟上計算機潮流、更快了解其他框架底層原理、更可能進入理想的公司。 它包括: 時間複雜度分析; 空

原创 算法與數據結構(四)棧與隊列

上次聊到數組與鏈表,它們都是線性表,數組與鏈表的本質區別是內存是否連續,進而得出結論:數組可以在 O(1) 時間複雜度進行隨機訪問,但是對內存要求嚴苛;鏈表訪問元素時間複雜度爲 O(n),但是對內存要求低。 今天來介紹另外兩個線性表中的數

原创 算法與數據結構(三)數組與鏈表

這次來說說數組與鏈表。在說數組與鏈表之前,先來介紹一下線性表和非線性表。 線性表 LinearList 顧名思義,線性表的結構是線性的。就像圖書館書架上的書一樣,每一行的書都是整齊的排列在直直的書板上。高樓在垂直方向上也可以說是線性的,每

原创 面試指北:算法與數據結構(一)開篇

經歷過長久的停滯,碼字的念頭又跳回到我的大腦。可能是希冀記錄一下自己人生,畢竟人這一生如落花似流水;可能是受朋友激發,發現原來身邊也有同行者,在寫作上不再孤獨;可能是主動總結一下生活和技術經驗,算是對一段時間內的自己做下整理,就像把信息當

原创 Git 之旅——不那麼深入理解 Git

初期形態 代碼管理的最早形態是使用類似現在百度同步盤的方式同步、管理代碼。但是代碼衝突問題時有發生,只能人工解決。 之後出現了改善工具: diff:比較文本文件、目錄差異 patch:相當於 diff 反向操作 # 生成差異文件 di

原创 Linux 命令行 Tricks

最近老弟說要上手 Linux,所以藉此機會簡單介紹幾個 Linux 的命令。用 Linux 大多數時候,簡單來說,我們是指的終端命令行的操作。接下來我就說幾個比較便捷、簡單、有趣的操作。 本文只針對入門級,老鳥請繞道。 1. cd -

原创 macOS 下載編譯 aosp 源碼

最近在讀《Android 進階指北》,開篇就是介紹如何在安裝到 VirtualBox 的 Ubuntu 上進行下載和編譯 aosp(Android Open Source Project)。由於我的電腦是 macOS,所以首先嚐試了在 m

原创 四個小技巧讓你的終端更有產出

本文基於 macOS。 1. 使用 iTerm2 iTerm2 有一堆特性可以讓你的終端更加好用: 支持 256 種顏色,在使用 vim 的時候有更好的語法高亮支持 面板分隔,使用 Cmd + D 和 Cmd + Shift +

原创 apt 和 apt-get 有什麼不同之處?

在使用 Ubuntu 命令行時,我們會碰到 apt 和 apt-get 命令,這兩個命令有什麼不同呢? apt-get 命令 apt-get 命令可以讓我們安裝、更新、移除軟件包。apt-get 是一個我們可以和 APT(Advanced

原创 爲什麼軟件發佈有 canary 版本?

Canary 是金絲雀的意思,Canary 版本也就是金絲雀版本。爲什麼版本發佈會叫這個名字呢? 其實這和採礦行業有關係,英文中有一句話叫做 canary in a coal mine,點擊查看其 維基百科。它講的是在工人去礦坑採礦的一種

原创 筆記·InfoQ 2019 年度總結和 2020 軟件領域預測 標題:InfoQ 2019 年度總結和 2020 軟件領域預測 關鍵點 正文

本文是文章“InfoQ's 2019, and Software Predictions for 2020”的閱讀筆記,大致介紹了 2019 軟件開發領域的一些數據和 InfoQ 對 2020 技術趨勢的展望。 點擊查看原文 標題:Info

原创 Ubuntu14.04安裝MyEclipse 2015 CI 出現 Insufficient Memory 問題的解決

系統:Ubuntu14.04 MyEclipse版本:2015 CI 問題如圖: 其中問題提示是:0MB of virtual memory. 這裏的virtual memory 是指 linux系統中的swap。要解決問題,建立一

原创 結合代碼來看 Unity 3D 的跨平臺特性實現

Unity3D 的 1.0 版本在 2005 年 6 月 6 日發佈,是當前使用十分廣泛的一款遊戲引擎。它的使用廣泛離不開 Write once, run in everywhere的特性,那就是寫一次代碼,可以做多個平臺運行。