原创 python 之 yield

一個使用yield的函數,也叫做generator。 一個帶有 yield 的函數就是一個 generator,它和普通函數不同,生成一個 generator 看起來像函數調用,但不會執行任何函數代碼,直到對其調用 next()(在 f

原创 【算法】斐波那契數列vs卡塔蘭數列DP

1. 斐波那契數列 公式: 應用:爬樓梯 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢? class Solution: def climbStairs(s

原创 【算法】查找算法

1. 順序查找 無序序列or順序序列 時間複雜度:O(n) ASL = (n+1)/2 def search(arr, a): for i in range(len(arr)): if arr[i] == a:

原创 【算法】樹

二叉樹深度優先遍歷:先序遍歷,中序遍歷,後序遍歷的遞歸與非遞歸。 二叉樹廣度優先遍歷:層次遍歷。 class TreeNode: def __init__(self, x): self.val = x

原创 【算法】紙幣面額拼湊DP

給你六種面額1、5、10、20、50、100元的紙幣,假設每種幣值的數量都足夠多,編寫程序求組成N元(N爲0-10000的非負整數)的不同組合的個數。 def fun(n): money = [1,5,10,20,50,100]

原创 【算法】全排列

1.全排列 給定一個沒有重複數字的序列,返回其所有可能的全排列 #遞歸,取一個數放在第一個位置,然後求剩下數據的全排列,以此類推 class Solution: def permute(self, nums):

原创 【算法】LCS最長公共子串DP

基礎題型: 最長共公共子序列(不連續)lcs 最長公共子串(連續)lcstr 最長迴文子序列(不連續)lps 最長迴文子串(連續)lpstr 拓展題型 平方串(lcs拓展) 給定一個字符串,問是否能通過添加一個字母將其變爲迴文串(lcst

原创 【算法】括號問題

1. 合法括號深度 一個合法的括號匹配序列有以下定義: 1、空串""是一個合法的括號匹配序列 2、如果"X"和"Y"都是合法的括號匹配序列,"XY"也是一個合法的括號匹配序列 3、如果"X"是一個合法的括號匹配序列,那麼"(X)"也是一個

原创 【算法】子串和(乘積)最大DP

1. 最大子序和 給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。nums中有正有負。 class Solution: def maxSubArray(self, nums)

原创 【機器學習】KNN基本介紹+代碼實現

1.基本概念 k近鄰算法:通過測量待預測點和已知點的特徵值之間的距離,選取前k個距離近的,根據多數表決的方法來分類。 訓練過程:無訓練過程。 測試過程:根據距離來分類。 k越小,模型越複雜,越容易過擬合。 需要對各個屬性(特徵)進行歸一化

原创 【機器學習】樸素貝葉斯基本介紹+代碼實現

1. 基本概念 根據先驗概率和似然函數來求後驗概率。一般用於分類任務。   先驗概率: 似然函數: 後驗概率: 根據條件獨立性假設: 目標函數:即求解使後驗概率最大的類。 訓練過程:即求各個單詞的條件概率,和類別的先驗概率。 測試過程

原创 【NLP】n-gram LM & NN LM

文章目錄n-gram LM任務描述模型結構TricksSmoothingGreedy Search vs Beam SearchLog化乘爲加NN LM任務描述模型結構DL vs MLWord Error Rate n-gram

原创 【NLP】HMM 詞性標註&中文分詞

文章目錄HMM詞性標註任務描述貝葉斯轉換模型結構HMM中文分詞任務描述模型結構實現實例 HMM詞性標註 HMM是一個生成模型,由隱藏狀態序列生成觀測序列。HMM有三個重要知識點:HMM的三個參數:初始概率,狀態轉移概率,和觀測概率

原创 【leetcode】深度優先遍歷之孤島問題

島嶼的個數 leetcode 200. 島嶼的個數: https://leetcode-cn.com/problems/number-of-islands/ 思路: DFS,走過一個要改成-1。 class Solution:

原创 python yield 的使用

一個使用yield的函數,也叫做generator。 一個帶有 yield 的函數就是一個 generator,它和普通函數不同,生成一個 generator 看起來像函數調用,但不會執行任何函數代碼,直到對其調用 next()(在 f