原创 Python 歸併排序實現

 歸併排序實質就是不斷的對一個數組進行左右區間的劃分, 當劃分到最小塊的時候,則左右兩邊均只有一個元素時這個時候通過merge 將他們在該塊進行排序合併。最後將排序好的塊在寫入原數組。然後一次進行更大塊的合併。這樣每次合併的兩個塊在各自的

原创 Objective-C中@,[], /, *等符號說明iOS基礎入門

我們在程序中看到大量的減號、中括號、中括號、@等等陌生符號,我們下面進行一一解釋: 1)減號(或者加號) 減號表示 爲實例方法,必須使用類的實例纔可以調用的。 比如C語言中,一個方法的寫法可能是: void hello(bool ishe

原创 LeetCode算法題——相同的樹

要判斷給定的兩顆二叉樹是否相同,就遞歸遍歷它們的所有子節點並進行判斷代碼如下:  //判斷兩顆樹是否相同         public bool IsSameTree(TreeNode p, TreeNode q)         {  

原创 LeetCode算法題——最長同值路徑

        int max = 0;   //保存當前最長路徑值         public int LongestUnivaluePath(TreeNode root)         {             if (root

原创 Unity OnPointerClick 和 OnMouseDown以及雙擊實現

簡單分析 OnPointerClick 和 OnMouseDown 實現雙擊的代碼如下 using UnityEngine; using UnityEngine.EventSystems; public class TestDemo

原创 vscode----OmniSharp不能正常使用

有一天突然vscode打開項目無法使用C#代碼提示了 相關提示:No Razor files detected in workspace, delaying language server start 後經過排查發現是新版本有bug 所

原创 用兩個棧實現隊列

用兩個棧可以實現隊列。         可以讓棧A當做出口,棧B當做入口。每當入棧的時候全都入到B中,而出棧的時候判斷棧A中是否爲空,不爲空就出A,爲空就把B中棧全入到A中,然後再從A中出。 即 代碼如下:稍微加了點異常處理 不過結果不影

原创 麻將胡牌算法——C#

這裏只介紹普通的麻將胡牌算法,也就是7個對子或者 1個對子+3*N; N = 三個順子或者三個一樣的 ,其中字牌(東南西北中發白)不能算順子。 首先對於每張牌 它有牌的的數字 1-9,牌的種類 (萬條筒以及字) 所以先封裝一個牌的包裝類。

原创 經典排序算法——雞尾酒排序

雞尾酒排序就是冒泡排序改進的一種,不同於冒泡排序,雞尾酒是雙向的,它每一次都會先進行從左到右的升序排列,再從右到左的降序排列。 就像:   2,4,10,3,33 第一次:2,4,3,10,33 第二次:2,3,4,10,33 但是需要考

原创 聯機算法——求最大子序和

給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子數組 [4,-1,2,1] 的和最大,爲

原创 非遞歸的快速排序

對於非遞歸的快速排序,推薦使用棧,和遞歸的快速排序都是不斷的去調整每次遍歷的空間,並通過區間的目標值,一般取區間的第一個值來進行左右區間的劃分,再遞歸調用Partition,和遞歸不同的是使用棧可以成對的進行管理區間,每次Partitio

原创 Lua——快速排序

開始學習lua,打算先用lua來寫一下排序算法,這是個開始。希望能堅持下去。先是快排代碼如下(就不解釋了邏輯和C#一樣只是語法格式問題) myarr = {1,3,2,33,22,100} function quicksort(arr

原创 147. 對鏈表進行插入排序

對鏈表進行插入排序。 插入排序的動畫演示如上。從第一個元素開始,該鏈表可以被認爲已經部分排序(用黑色表示)。 每次迭代時,從輸入數據中移除一個元素(用紅色表示),並原地將其插入到已排好序的鏈表中。   插入排序算法: 插入排序是迭代的,

原创 面試算法題——數字刪除指定個數使結果

給定一個正整數,如果刪除其中若干數字,怎麼刪除能保證剩下的數字組成最大,編程實現,不長於O(n),輸入給定的正整數和要刪除的數字個數 5349 2  ==》 59 思路:          先求這個數字的遞減序列,然後刪除遞減序列的最後一

原创 56. 合併區間

給出一個區間的集合,請合併所有重疊的區間。 示例 1: 輸入: [[1,3],[2,6],[8,10],[15,18]] 輸出: [[1,6],[8,10],[15,18]] 解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併