原创 未理解的題
關於樹的深度優先搜索算法描述錯誤的是 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方法 -