原创 leetCode #82 Remove Duplicates from Sorted List

題目:從一個有序鏈表裏刪除重複元素 分析:這個和數組去重很像。都只需記錄下當前不重複的元素位置到下一個不重複的元素位置,然後建立聯繫即可。 答案: /** * Definition for singly-linked list. *

原创 leetCode #135 Candy

題目:給一排小孩發糖果,每個小孩有自己的評分,評分高的小孩得到的糖果比評分低的左右鄰居要多。每個小孩至少一個糖果。問最少發多少糖果? 分析: 對於一個順序上升或者下降的評分序列,小孩得到的糖果最少也得是遞增/遞減的 比如 評分 1 3 5

原创 灰帽子python 讀書筆記 1

論文交上去坐等答辯畢業,於是閒來看看這本書。 書裏的代碼用python 2.5 + win32系統,我手頭的是python3.4 + win64系統,所以會有點不一樣,就當做是讀後實踐的考驗了。在這裏記錄一下遇到的問題,也方便後來參考吧

原创 灰帽子Python 學習記錄 8 內存斷點

內存斷點原理:就是通過設置內存塊頁面的權限,使其成爲保護頁。這樣當CPU訪問該頁面時,就會觸發保護頁的訪問異常,產生中斷。需要調用異常處理函數將權限恢復從而繼續執行。 實現步驟: 1. 找函數的地址還是和前面一樣 2. 通過Virtua

原创 leetcode #89 Gray Code

題目:生成格雷碼。即下一個數和上一個數比只有一個位不同。 分析:格雷碼的特點,是n位格雷碼和是的前一半是n-1位格雷碼前面+0,後一半是n-1爲格雷碼倒序且前面+1 0 0 0 0 0 1 0 1 1 0 1 0 答案: 用遞歸: cla

原创 leetCode #78 subsets

題目:輸入一個數組,輸出所有子集 分析:每個數有選/不選2種,一共2^n種 答案: class Solution { private: vector<vector<int>> res; public: vector<vector<

原创 灰帽子python 學習記錄 3

本篇的課題是附加進程。這個灰常坑爹,昨天沒搞定,今天才搞好。 跟上篇產生進程不同,附加進程爲附加到一個指定的進程,這樣可以跳過啓動步驟。 首先還是慣例,按書上的代碼抄了一遍,寫下一點理解吧: 步驟: 1,通過pid獲取進程句柄,調用

原创 灰帽子Python 學習記錄 5

WaitForDebugEvent 這個函數是等待調試事件,每次捕捉到的時候就返回一個debug_event 然後同樣用notepad ++ 做實驗,記錄每次的eventCode: Enter pid:75160 OpenProces

原创 leetCode #144 Binary Tree Preorder Traversal

題目:二叉樹的先序遍歷 分析:用遞歸超級容易 答案: 遞歸: /** * Definition for a binary tree node. * struct TreeNode { * int val; * Tr

原创 leetCode #79 Word Search 回溯

題目:給一個字符矩陣,在裏面找單詞。相鄰字母必須要4鄰域內。 分析:典型的4鄰域深度優先搜索, 答案: class Solution { public: bool exist(vector<vector<char>>& board

原创 leetCode #141 Linked List Cycle

題目:判斷單向鏈表是否有環 分析:用1個慢指針和一個快指針,慢指針每次往前走一步,快指針每次往前走2步。如果沒有環,那麼最終快指針會指向null或者null的上一步,如果有環,那麼2個指針會相遇,即慢指針比快指針整整少走了一圈。 答案:

原创 leetCode #142 Linked List Cycle II

題目:對一個單向鏈表,如有環,返回環的起始節點,如果沒環,返回NULL 分析:在Cycle I部分,我們就討論瞭如何判斷鏈表是否有環,即通過快慢指針的相遇來判斷。那麼如何找到起始點呢? 首先,假設鏈表需要走a個節點進入環,走b個節點相遇,

原创 leetCode #257 Binary Tree Paths

題目:打印二叉樹的所有路徑 分析:就是深度遍歷唄。注意對第一個節點做處理,不用打->,然後就完了 答案: /** * Definition for a binary tree node. * struct TreeNode { *

原创 leetCode #122 Best Time to Buy and Sell Stock II

題目:數組第i個元素表示的是股票在第i天的價格,問最大的收益。要求必須先買後賣,可以進行任意次交易。 分析:只要有收益就進行買賣即可。 比如以下序列 1 2 9 3 我們可以看到,在1時買入,2時賣出,2時買入,9時再賣出,收益爲8 而在

原创 leetCode # Convert Sorted List to Binary Search Tree

題目:將排好序的鏈表轉化爲二叉搜索樹 分析:算法思路是取中間爲根節點,左邊是左子樹,右邊是右子樹,然後遞歸 答案: /** * Definition for singly-linked list. * struct ListNode