原创 leetcode 95 所有的二叉排序樹

首先是遞歸的解法, # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val =

原创 智能指針就這麼簡單

C++智能指針基礎知識及其實現STL中的智能指針簡介先定義一個類auto_ptr(T*)unique_ptr(T*)shared_ptr(T*)weak_ptr(T*)自己實現一個智能指針類模板成員變量構造函數,析構函數重載->獲

原创 leetcode133. Clone Graph

""" # Definition for a Node. class Node: def __init__(self, val, neighbors): self.val = val sel

原创 內存池就這麼簡單

內存池的實現內存池的成員變量內存塊的成員變量每個單元的前兩個字節不簡單哦向內存池申請一個單元的內存釋放一個單元的內存測試 內存池的成員變量 剛開始分配的時候,內存池裏面只有一個內存塊,這塊內存塊總共擁有unit_count個單元。

原创 leetcode114 Flatten Binary Tree to Linked List

the purpose of this question is to let you recover the memory about post order tranverse. Just as the post order tr

原创 leetcode123. Best Time to Buy and Sell Stock III

題目大意是給你一些股價,選擇買入和賣出,使賺得最多,只能買入後賣出,並且只能買賣兩次。 雙指針和動態規劃的思想。 一個指針從前往後指,記錄下從開頭到當前的賺最多的一次買賣 一個指針從後往前,記錄下從當前到數組末尾賺的最多的一次買賣

原创 leetcode42下雨天能接多少水的問題

雙指針 有一排柱子,那麼水肯定是在柱子上面的,把每根柱子上面的水累加就行 每根柱子上的水怎麼算?每根柱子是被兩邊的柱子包圍住的,那麼分別取左右兩邊最高的柱子,再取這兩個柱子的較小值就知道水面的高度了。 水面的高度減掉柱子的高度就是

原创 leetcode92 reversed Linked List

因爲是中間一部分發生逆轉, 最後的字符串爲 左正序鏈表+中間逆序鏈表+右邊正序鏈表 所以要安排幾個指針分別存放左正序鏈表的頭和尾,中間逆序鏈表的頭和尾,右邊正序鏈表的頭。 首先我們要給鏈表加個空頭,因爲有可能從第一個數字就開始旋轉

原创 leetcode65 Valid Number

題目大意是給一個字符串判斷是不是浮點數 思路是從前往後看每一個字符 如果是小數點的話,那麼前或者後必須要有數字,並且不能在e後面 如果是e的話,那麼必定不是在開頭或者結尾 如果是正負號的話,那麼一定是在開頭或者e後面,並且後面一定

原创 判斷一棵樹是不是二叉排序樹

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x #

原创 leetcode81 search in Rotate Array

沒重複數字 class Solution: def search(self, nums: List[int], target: int) -> bool: left,right=0,len(nums)-1

原创 leetcode 164最大間隔

桶排序的思想,一共有n個數,如果放進大於等於n個桶裏面,最大間隔將從桶的間隔中取。如果要放進大於等於n個桶裏,那麼桶的增量應該怎麼取。 首先要把n個數字去除重複的數字,然後將最大值減去最小值也就是累計的增量,由於最少要設置n個桶,

原创 leetcode126. Word Ladder II

you are offered a list of words and an initial word and a destination word.your task is to change a letter at a tim

原创 leetcode135. Candy

每個小孩必須至少有一顆糖果,相鄰的小孩分數高的必須比分數低的糖果多。 問最少分出去多少糖果? 進行兩次遍歷 第一次從前往後,如果後面的比前面的分數高就+1 第二次從後往前,前面的比後面的分數高就+1 class Solution:

原创 右值引用就這麼簡單

右值引用的相關概念左值和右值的概念右值引用是什麼1.move2. 寄存器3.減少拷貝移動構造函數移動左值完美轉發 左值和右值的概念 此處略去1000個字 簡而言之: 1.等號左邊的是左值,等號右邊的是右值 2.++i是左值,i++