原创 未理解的題

關於樹的深度優先搜索算法描述錯誤的是 A : 按照某個條件往前試探搜索,如果前進中遭遇失敗, 則退回頭另選通路繼續搜索,直到找到條件目標爲止 B: 先訪問該節點所有的子節點, 遍歷完畢後選取它未訪問過的子節點重複上述過程,直到找到

原创 按位與& 和 模運算 % 的關係

unsigned int MAX = 32; // 2的5次方 unsigned int index = 31; index = (index + 100) % MAX; printf ("inde

原创 位運算判斷兩個數是否異號

首先介紹下負數在計算機中的表示和存儲 在計算機系統中,數值一律用補碼錶示和存儲。含符號位和數值位,符號位:0表示“正”; 1表示“負”。 正數的補碼 = 原碼 負數的補碼 = 負數的原碼取反(符號位保持不變)+ 1 列如 比如

原创 按位或與加法的區別

0 | 0 = 0 1 | 1 = 1 0 | 1 = 1 1 | 0 = 1 0 ^ 0 = 0 1 ^ 1 = 0 0 ^ 1 = 1 1 ^ 0 = 1 0 & 0 = 0 1 &

原创 二分查找框架

int binarySearch(int[] nums, int target) { int left = 0, right = ...; while (...) { int mid = left + (right - l

原创 貪心算法Greedy筆記與應用

貪心算法是一種在每一步選擇中都採用在當前狀態下最好或最優(即最有利)的選擇, 從而希望導致結果是全局最好或者 最優的算法.(用貪心算法,尤其是最基礎的貪心,每次當下情況下找到最優不一定能夠達到全局最優的情況) 貪心算法與動態規劃的

原创 冒泡排序, 選擇排序, 插入排序(c + swift)

冒泡思想就像愛炒股短線的人,不斷的買進賣出,操作頻繁,即使失誤不多,也會因爲操作手續費和印花稅過高而獲利很少, 那麼有種做股票的人呢,很少出手,不斷觀察和判斷,等到時機一到,果斷買進賣出.因爲交易次數少,最終受益頗豐,這就是選擇

原创 深度優先搜索和廣度優先搜索思路

深度優先搜索和廣度優先搜索 搜索-遍歷 每個節點都要訪問一次 每個節點僅訪問一次 對於節點的訪問順序不同 深度優先: depth first search 廣度優先: breadth first search 優先級優先搜索(啓

原创 LeetCode 刷題一

9 迴文數 /* 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀

原创 分治, 回溯 Pow(x, n)與子集與電話號碼的字母組合

(Divide & Conquer)分治和回溯本質上就是特殊的遞歸, 找重複性 重複性有最近重複項(分治,回溯),和最優重複項(動態規劃); 不論分治,遞歸,回溯本質都是找重複性, 分解問題, 最後組合每個子問題的結果. 將一個

原创 leetcode 二分查找與x的平方根

704 二分查找 給定一個 n 個元素有序的(升序)整型數組 nums 和一個目標值 target ,寫一個函數搜索 nums 中的 target,如果目標值存在返回下標,否則返回 -1。 示例 1: 輸入: nums

原创 NSOperation與NSOperationQueue

與 GCD 不同的是,Operation Queues 不遵循先進先出的順序。以下是 Operation Queues 和 Dispatch Queues 的不同: 1: 不遵循 FIFO(先進先出):在 Operation Qu

原创 二叉樹的深度優先遍歷(DFS)與廣度優先遍歷(BFS)

二叉樹的深度優先遍歷(DFS)與廣度優先遍歷(BFS) 深度優先遍歷:從根節點出發, 沿着左子樹的方向進行縱向遍歷,直到找到葉子節點爲之, 然後回溯到前一個節點, 進行右子樹節點的遍歷,直到遍歷完所有可達節點爲止 廣度優先遍歷:

原创 189. 旋轉數組, 尋找旋轉排序數組中的最小值

旋轉數組 給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。 示例1 輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右旋轉 1 步: [7,1,

原创 UIView的生命週期二

UIView生命週期相關函數 //構造方法,初始化時調用,不會調用init方法 - (instancetype)initWithFrame:(CGRect)frame; //構造方法,內部會調用initWithFrame方法 -