原创 【劍指offer】18—變態跳臺階

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 class Solution: def jumpFloorII(self, number):

原创 【劍指offer】19—包含min函數的棧

題目描述 定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間複雜度應爲O(1))。注意:保證測試中不會當棧爲空的時候,對棧調用pop()或者min()或者top()方法。 鏈接:https://ww

原创 機器學習之決策樹基本知識點

決策樹是一種常用分類模型,優點是可讀性強,分類速度快,學習時利用訓練數據根據損失函數最小化的原則建立樹模型。 建立決策樹的三個步驟:特徵選擇、決策樹的生成、決策樹的修剪(預修剪、後修剪) 對於特徵的選擇,對於不同的算法有不同的方法

原创 【劍指offer】16—把數組排成最小的數

輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。例如輸入數組{3,32,321},則打印出這三個數字能排成的最小數字爲321323。 方法一:利用內置函數實現全排列,然後找出最小值 cl

原创 【劍指offer】17—重建二叉樹

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重

原创 【LeetCode刷題】3 無重複最長子串 || 4 尋找兩個數組的中位數

3、無重複最長子串 給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。 示例 1: 輸入: “abcabcbb” 輸出: 3 解釋: 因爲無重複字符的最長子串是 “abc”,所以其長度爲 3。 思路:用一個字符串和一

原创 【LeetCode之動態規劃】5-最長迴文字符串

最長迴文字符串 方法一:暴力匹配 (Brute Force) 1、根據迴文子串的定義,枚舉所有長度大於等於 22 的子串,依次判斷它們是否是迴文; 2、在具體實現時,可以只針對大於“當前得到的最長迴文子串長度”的子串進行“迴文驗證

原创 【劍指offer】15—數組中出現次數超過一半的元素

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

原创 【LeetCode刷題】41 缺失的第一個正數 || 46 全排列

41、缺失的第一個正數 給定一個未排序的整數數組,找出其中沒有出現的最小的正整數。 示例 1: 輸入: [1,2,0] 輸出: 3 示例 2: 輸入: [3,4,-1,1] 輸出: 2 示例 3: 輸入: [7,8,9,11,12

原创 【劍指offer】14-字符串的排列

題目描述 輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。 方法一:遞歸法,問題轉換爲先固定第一個字符,

原创 【劍指offer】7-鏈表中倒數第k個節點

鏈表中倒數第k個節點 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 思路:由於鏈表只能從前往後遍歷,所以我們可以先求出鏈表的總長度N,然後利用第N-k個節點就是我們需要的來解決。 首先,統計鏈表的長度有兩種方法,循環或者遞歸。分別如

原创 深度學習基礎知識總結(一)

1、推導反向傳播算法 2、Relu激活函數的優缺點? 優點包括: 1、解決了梯度消失、爆炸的問題 2、計算方便,計算速度快,求導方便 3、加速網絡訓練 缺點包括: 1、由於負數部分恆爲0,會導致一些神經元無法激活 2、輸出不是以

原创 【劍指offer】9-用兩個棧實現隊列

用兩個棧實現隊列 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 分析(來源牛客) 隊列的特性是:“先入先出”,棧的特性是:“先入後出” 當我們向模擬的隊列插入數 a,b,c 時,假設插入的是

原创 【劍指offer】8-旋轉數組的最小數字

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

原创 【劍指offer】12-兩個鏈表的第一個公共節點

兩個鏈表的第一個公共節點 輸入兩個鏈表,找出它們的第一個公共結點。(注意因爲傳入數據是鏈表,所以錯誤測試數據的提示是用其他方式顯示的,保證傳入數據是正確的) 思路:首先我們要知道什麼是公共節點,兩個鏈表從某一節點開始,他們的nex