原创 Python 數組中出現次數超過一半的數字

數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。例如輸入一個長度爲9的數組{1,2,3,2,2,2,5,4,2}。由於數字2在數組中出現了5次,超過數組長度的一半,因此輸出2。如果不存在則輸出0。 方法一 # -*-

原创 Python 按之字形打印二叉樹

請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二行按照從右到左的順序打印,第三行按照從左到右的順序打印,其他行一次類推。 class TreeNode: def __init__(self,x):

原创 Python 矩形覆蓋

可以用21的小巨星橫着或豎着去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? # -*-coding:utf-8 -*- class Solution: def rectCover

原创 Python 把二叉樹打印成多行

從上到下按層打印二叉樹,同一層節點從左至右輸出。每一層輸出一行。 class TreeNode: def __init__(self,x): self.val=x self.left=Non

原创 C++ 中 string unordered_map unordered_set max

string 求字符串的長度 在haystack字符串中找到needle字符串的位置,如果沒有,則返回-1 int pos = haystack.find(needle) unordered map (這就是hash tab

原创 C++ 知識點筆記

c++ int類型默認值 在全局域中聲明的變量會自動初始化爲0 如果變量是在局部域中定義的,則系統不會向它提供回初始值0,這些對象被認爲是未初始化,其值隨機(有的編譯器可能答會爲你初始化爲0,但千萬別依賴於這種可能行爲,因爲它會給

原创 Java C++ Python 哈希表 棧 字符串等非常實用的操作

持續更新中 Java 棧 創建棧: Stack<Character> st =new Stack<Character>(); Java中棧的pop操作,會返回pop的值,但C++中棧的pop操作不會返回pop的值 哈希表 創建哈希

原创 LeetCode各題的視頻講解地址

以下記錄的是各個題較好的視頻講解地址及視頻中的代碼。 持續更新中。 每一道題都必須要分析時間和空間複雜度。 有時還需要寫test case LeetCode 1. 兩數之和 https://leetcode-cn.com/prob

原创 常用數據結構和技巧

常用的數據結構有: 數組、字符串/Array&String 鏈表/Linked-list 棧/Stack 隊列/Queue 雙端隊列/Dequeue 樹/Tree 數組、字符串 字符串中的字符無法修改。 數組的優點: 構建一個數組

原创 Python 二叉樹的下一個節點

給定一個二叉樹和其中的一個節點,請找出中序遍歷順序的下一個節點並且返回。書中的節點不僅包含左右子節點,同時包含指向父節點的指針。 class TreeLinkNode: def __init__(self,x):

原创 Python 數組中只出現一次的數字

一個整型數組裏除了兩個數字之外,其他的數字都出現了偶數次。請找出這兩個只出現一次的數字。 # -*-coding:utf-8 -*- class Solution: def FindNumsAppearOnce(self,

原创 Python 鏈表中倒數第k個節點

輸入一個鏈表,輸出該鏈表中倒數第k個節點。 # -*- coding:utf-8 -*- class ListNode: def __init__(self, x): self.val = x

原创 Python 替換空格

請實現一個函數,將一個字符串中的每個空格替換成"20%"。例如,當字符串爲We Are Happy. 則經過替換之後的字符串爲We20%Are20%Happy. class Solution: def replaceSpa

原创 Python 旋轉數組的最小數字

把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。輸入一個非減排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1。 Note: 給出的

原创 Python 二進制中1的個數

輸入一個整數,輸出該樹二進制表示中1的個數。其中負數用補碼錶示。 補碼:正數不變,負數是他的正數的反碼+1 例如: -2的補碼: 2的二進制爲: 1000…00010 2的二進制的反碼爲: 1111