原创 【LeetCode刷題記錄】5. 最長迴文子串

題目描述: 題解: 一、暴力破解(時間複雜度:O(n3),空間複雜度:O(1),超出時間限制(TLE)) BF方法的思路比較簡單,逐個檢查所有的子字符串,看它是否是迴文子串。 二、中心擴展算法 逐字符訪問,以當前字符(奇數)或當

原创 【LeetCode刷題記錄】2. 兩數相加

題目描述: 單鏈表定義: struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; 打印鏈表: 正序: vo

原创 【LeetCode刷題記錄】11. 盛最多水的容器

題目描述: 題解: 一、暴力破解(時間複雜度:O(n2), 空間複雜度:O(1)) BF方法的思路簡單,兩層循環,遍歷所有可能性,找出其中最大的。不作贅述。 二、雙指針 使用雙指針,一個指頭,一個指尾,面積=較短的高度*兩者間距

原创 【LeetCode刷題記錄】19. 刪除鏈表的倒數第N個節點

題目描述: 題解: 問題的關鍵是如何確定倒數第n個節點的位置,先看代碼: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode *h = new ListNo

原创 【LeetCode刷題記錄】15. 三數之和

題目描述: 題解: 一、排序+雙指針 思路簡單,直接看代碼。 vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> rst; sort(n

原创 【LeetCode刷題記錄】18. 四數之和

題目描述: 題解: 一、排序+雙指針 思路和三數之和類似,不贅述。 vector<vector<int>> fourSum(vector<int>& nums, int target) { if (nums.empty() |

原创 【視覺算法】廣義霍夫變換(Generalized Hough Transform)

在上一篇文章中,我們學習了經典霍夫變換,用以識別圖像中的可解析圖形;而廣義霍夫變換(Generalized Hough Transform)旨在解決不可解析的不規則圖形的識別問題。 以下,結合Generalized Hough T

原创 【LeetCode刷題記錄】20. 有效的括號

題目描述: 題解: 一、遞歸 每次檢查相鄰且成對出現的合法符號,有則刪除該對,直到沒有相鄰且成對出現的爲止。 map<char, char> wordbook = { { ')', '(' }, { ']', '[' },

原创 【LeetCode刷題記錄】6. Z 字形變換

題目描述: 題解: 思路比較簡單,直接看代碼。 string convert(string s, int numRows) { if (numRows == 1)return s; vector<string> rows(m

原创 【視覺算法】霍夫變換(Hough Transform)

在進入正題之前,首先思考一個問題,在下圖中,我們如何從散亂的點中尋找到直線? 有多少直線?哪些點屬於哪些直線? 如果是找圓形呢? 霍夫變換(Hough Transform)能很好的解決這些問題,要理解霍夫變換,首先要知道霍夫空間

原创 【LeetCode刷題記錄】12. 整數轉羅馬數字

題目描述: 題解: 兩種解法,思路都比較簡單,第二種比較有意思。 一、暴力法(時間複雜度O(1),空間複雜度O(1)) string intToRoman(int num) { string result; vector<