原创 Lua——對象排序

有時候可能有這樣的需求:比如有很多個人,每個人的年紀不同,現在需要對所有人的年紀進行排序。代碼如下: Person = {name = "", age = 0} function Person:new(o) o = o or {}

原创 234. 迴文鏈表

請判斷一個鏈表是否爲迴文鏈表。 示例 1: 輸入: 1->2 輸出: false 示例 2: 輸入: 1->2->2->1 輸出: true 思路:            首先建立兩個指針指向鏈表,然後使其中一個指針指向鏈表中間,這裏

原创 兩道題目——湊14和壓縮0和1組成的數組

1.實現一個函數 湊14 :輸入很多個整數(1<=數值<=13)任意兩個數相加等於14就可以從數組中刪除這兩個數,求剩餘數(從小到大排列);比如輸入{9,1,9,7,5,13 } 輸出 {7,9};        用兩個指針變量一頭一尾,

原创 15. 三數之和

給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 例如, 給定數組 nums = [

原创 70. 爬樓梯

假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? 注意:給定 n 是一個正整數。 示例 1: 輸入: 2 輸出: 2 解釋: 有兩種方法可以爬到樓頂。 1. 1 階

原创 一道算法題——8選6全排列

在網上看到一道題目:給定一個字符串包含8組元素,任取其中六組進行全排列。 例如: string str = "01 02 03 04 05 06 07 08";   從中輸出所有由其中六個組成的序列。 思路:是用2進制來表示這個字符串的所

原创 41. 缺失的第一個正數

給定一個未排序的整數數組,找出其中沒有出現的最小的正整數。 示例 1: 輸入: [1,2,0] 輸出: 3 示例 2: 輸入: [3,4,-1,1] 輸出: 2 示例 3: 輸入: [7,8,9,11,12] 輸出: 1 主要判斷數

原创 堆排序——賊容易理解

堆排序就是對一個完全二叉樹進行排序,首先將數組構造成一個大頂堆(小頂堆也可以),大頂堆就是整個完全二叉樹的第一個元素最大,然後將首位進行換位,最後在將下次要構造的大頂堆的長度-1,直到最後只剩一個元素的時候就排序OK了 ,代碼如下: c

原创 43. 字符串相乘

給定兩個以字符串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示爲字符串形式。 示例 1: 輸入: num1 = "2", num2 = "3" 輸出: "6" 示例 2: 輸入: n

原创 LeetCode算法題——兩個排序數組的中位數

4.給定兩個大小爲 m 和 n 的有序數組 nums1 和 nums2 。 請找出這兩個有序數組的中位數。要求算法的時間複雜度爲 O(log (m+n)) 。 你可以假設 nums1 和 nums2 不同時爲空。 示例 1: nums1

原创 LeetCode算法題——三數之和

給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 例如, 給定數組 nums = [

原创 LeetCode算法題——完全二叉樹的節點個數

對於這道題首先會想到遞歸判斷節點,不爲空就加1,代碼如下(但是會超時): //會超時 public class Solution { if (root == null) return 0; return CountNod

原创 C#快速排序

快速排序就是對於一個數組任取一個當做標誌位(一般選擇第一個),然後將比這個標誌位大的數放在它的右邊,小的放在它的左邊,這樣分爲了兩個區間,再分別對左右兩個區間重複執行之前的步驟就是快速排序。代碼如下:           public s