原创 在Linux下(ubuntu)打包QT程序

本文參考:打包QT 前言 如何在linux下打包免安裝程序,程序名稱(項目名稱)爲CoinFlip,QT版本是5.11.3,以下如出現這個名稱,則一律替換成讀者自己的應用程序名稱。 創建程序的運行文件夾 創建空文件夾coinfl

原创 leetcode234.迴文鏈表

請判斷一個鏈表是否爲迴文鏈表。 示例 1: 輸入: 1->2 輸出: false 示例 2: 輸入: 1->2->2->1 輸出: true 進階: 你能否用 O(n) 時間複雜度和 O(1) 空間複雜度解決此題? 來源:

原创 leetcode76.最小覆蓋子串

給你一個字符串 S、一個字符串 T,請在字符串 S 裏面找出:包含 T 所有字母的最小子串。 示例: 輸入: S = "ADOBECODEBANC", T = "ABC" 輸出: "BANC" 說明: 如果 S 中不存這樣的子

原创 leetcode77.組合

給定兩個整數 n 和 k,返回 1 ... n 中所有可能的 k 個數的組合。 示例: 輸入: n = 4, k = 2 輸出: [ [2,4], [3,4], [2,3], [1,2], [1,3],

原创 leetcode84.柱狀圖中最大的矩形

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度爲 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 以上是柱狀圖的示例,其中每個柱子的寬度爲 1,給定的高度爲 [2,1,5,6,2,3]。

原创 leetcode263.醜數

編寫一個程序判斷給定的數是否爲醜數。 醜數就是隻包含質因數 2, 3, 5 的正整數。 示例 1: 輸入: 6 輸出: true 解釋: 6 = 2 × 3 示例 2: 輸入: 8 輸出: true 解釋: 8 = 2 × 2

原创 leetcode90.子集II

給定一個可能包含重複元素的整數數組 nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重複的子集。 示例: 輸入: [1,2,2] 輸出: [ [2], [1], [1,2,2], [2,2],

原创 劍指offer27.二叉樹的鏡像

題目描述 操作給定的二叉樹,將其變換爲源二叉樹的鏡像。 輸入描述: 二叉樹的鏡像定義:源二叉樹 8 / \ 6 10 / \ / \ 5 7 9 1

原创 leetcode78.子集

給定一組不含重複元素的整數數組 nums,返回該數組所有可能的子集(冪集)。 說明:解集不能包含重複的子集。 示例: 輸入: nums = [1,2,3] 輸出: [ [3], [1], [2], [1,2,3],

原创 leetcode148.排序鏈表

在 O(n log n) 時間複雜度和常數級空間複雜度下,對鏈表進行排序。 示例 1: 輸入: 4->2->1->3 輸出: 1->2->3->4 示例 2: 輸入: -1->5->3->4->0 輸出: -1->0->3->4

原创 leetcode141.環形鏈表

給定一個鏈表,判斷鏈表中是否有環。 爲了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環。 示例 1: 輸入:head = [3,2,0,-

原创 leetcode236.二叉樹的最近公共祖先節點

給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、q,最近公共祖先表示爲一個結點 x,滿足 x 是 p、q 的祖先且 x 的深度儘可能大(一個節點也可以是它

原创 堆排序算法

堆排序算法 參考:堆排序 用數組來存儲堆 首先,從第一個非葉子節點(下標:len / 2 - 1)開始,將初始堆調整成大頂堆 然後將最大的元素和最後一個待排序的元素交換,將新的序列調整成大頂堆 完整代碼 #include<bi

原创 劍指offer28.對稱的二叉樹

題目描述 請實現一個函數,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其爲對稱的。 完整代碼 /* struct TreeNode { int val; struct Tree

原创 劍指offer44.數字序列中的某一位數字

題目要求: 數字以01234567891011121314…的格式排列。在這個序列中,第5位(從0開始計)是5,第13位是1,第19位是4。求任意第n爲對應的數字。 完整代碼 下述代碼分別用兩種思路實現,程序未測試。 思想一: 對