原创 編程之美 - 求二叉樹節點的最大距離

問題描述: 把在二叉樹中,從一個節點到另一個節點的需要經過的邊數,定義爲距離。 求一棵二叉樹中,距離最遠的兩個節點之間的距離是多少? 問題分析: 最遠的節點可能出現兩種情況: 1)  位於根節點下面兩棵不同的子樹上,例如節點C和D

原创 編程之美 - 無頭鏈表刪除節點

問題描述: 一個沒有頭指針的鏈表,從其中刪除任意一箇中間節點(非第一個,也不是最後一個)。 思路: 沒有頭指針,所以無法使用遍歷的方式找到目標節點的上一個節點。但可以使用的是目標節點的下一個節點。 因爲當前節點是要被刪除的,所以當前節點

原创 趣味算法-求波峯波谷最大值

給一個數組,求它的最大的波峯波谷的落差。 舉例:數組  A={2, 3, 6, 5, 7, 9}, 其中 6 和 9 被看做是波峯,2和5則是波谷。D[2, 6]=4, D[6,5]=1, D=[5,9]=4. 則 Thus, MaxD(

原创 編程之美 - 1 的數目

問題: 給定一個十進制整數N,寫下從1開始到N的所有數字,然後數一下其中1的個數。 例如N = 16, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 其中 1 的個數爲 9

原创 Android 內核 - 05 SystemServer

概要 SystemServer 由 ZygoteInit 創建的第一個子進程,負責系統管理 framework\base\services\java\com\android\server\SystemServer.java S

原创 Android 內核 - 01 Binder

Binder 概述 Binder是一種架構,一種進程間通信(IPC)的機制,它工作在Linux內核層面,屬於驅動層的一個模塊。 但它其實並不是與硬件打交道,是上層消息轉發的一個通道。工作在內核層效率更高。 Binder的應用

原创 03 VoLTE - Initial LTE Attach

概述 Initial LTE Attach 過程包括 RRC Connection set upAuthentication and security proceduresPDN connection set up PDN conn

原创 趣味算法-0的迷宮

一個 5*5的矩陣,其中包含0-24 25個數字,數字在矩陣中沒有順序,其中0比較特殊,它可以和上下左右不同的數字進行交換,但一定在矩陣的範圍內。 0和上面的元素交換可以用 "U"表示; 0和下面的元素交換可以用 "D"表示; 0和左面的

原创 編程之美 - 尋找灌水王及擴展問題

問題描述: 在一個論壇中,一個ID發的帖子超過了半數,問怎樣能快速的找出這個ID。 算法描述: 書中給出了幾種不同的思考方式, 1) 先排序,然後逐個統計 2) 排序後,第 N/2個元素一定是這個ID 最好的方式是第三種,每次刪除兩

原创 Android 內核 - 02 Context

理解 Context 上下文,環境,場景,一個動態的過程,用戶和Android系統交互的一次過程。Context貫穿整個App,理解它的源碼,可以比較好的理解一個App的執行過程。 一個Activity或一個Service本質上就是一

原创 編程之美 - 抓石頭遊戲(3)

遊戲規則:  有兩堆石頭,玩家A 和 B,兩個人可以從一堆石頭中取任意數目的石頭或從兩堆石頭中取相同數量的石頭。 最後取得所有石頭的人勝。 書中的分析: 從最簡單的情況入手 只有一塊石頭  == >  先拿的一定會贏。 如果兩堆石頭數

原创 01 VoLTE - Introduction

What is VoLTE and Why? Voice Over LTE,,它是一種IP數據傳輸技術,無需2G/3G網絡支持,全部業務承載於4G網絡上,可實現數據與語音業務在同一網絡下的統一。 VoLTE的實現主要是基於IMS框架。

原创 05 VoLTE - Signaling - Call Scenarios

VoLTE Call 的建立 對於VoLTE call 來說,MO Call 和 MT Call 的過程基本是一致的。這裏假設主叫UE和被叫UE已經在IMS網絡中註冊成功了。 並且兩個UE都處於RRC Idle狀態。 呼叫的過程可以大

原创 趣味算法-打印數字 (1)

給出一個數字N,按下面的規律打印圖形。 例如 N=3  輸出: 1*2*3 7*8*9 4*5*6 N = 5  輸出: 1*2*3*4*5 11*12*13*14*15 21*22*23*24*25 16*17*18*19*20 6*7

原创 趣味算法-巧填運算符

給定一個整數數組,和一個單獨的數字,在數組的每一個元素中間填加 "+"或"-" 使其運算結果等於單獨的數字例如給定的數組爲{7 2 4} ,數字爲 9。運算結果爲7-2+4=9     規則1:數組中元素的位置不能變化。 規則2:如果無