原创 win10+centos7+Anaconda3+python+pytorch

安裝Anaconda3 直接去清華的鏡像進行下載,因爲官網進不去,下載Anaconda3-2019.03-Linux-x86_64.sh 也可以命令行下載 wget https://mirrors.tuna.tsinghua.edu.cn

原创 編程——無序數組中找到最大乘積(python)

題目 給定一個無序數組,包含正數、負數和0,要求從中找出3個數的乘積,使得乘積最大,要求時間複雜度:O(n),空間複雜度:O(1) 輸入描述: 輸入共2行,第一行包括一個整數n,表示數組長度 第二行爲n個以空格隔開的整數,分別爲A1,A

原创 鏈表問題12——將單鏈表的每K個節點之間逆序(方法二)

題目 題目同上一篇方法一中的題目。 思路 方法二:在原鏈表中調整 用變量記錄每一組開始的第一個節點,最後一個節點,然後逆序即可。 源碼 public class Node{ public int value; public Node

原创 鏈表問題15——將搜索二叉樹轉換成雙向鏈表(方法二)

題目 題目同上一篇文章,即題目將二叉樹按照中序順序轉換成雙向鏈表 思路 方法二:利用遞歸函數,不使用任何容器。時間複雜度爲O(N),額外空間複雜度爲O(h),h爲二d d d df叉樹的高度 首先需要一個新的類,來返回有序雙向鏈表的頭節點

原创 鏈表問題20——按照左右半區的方式重新組合單鏈表

題目 給定一個單鏈表的頭部節點head,鏈表長度爲N,如果N爲偶數,那麼前N/2個節點算作左半區,後N/2個節點算作右半區;如果N爲奇數,那麼前N/2個節點算作左半區,後N/2+1個節點算作右半區。左半區從左到右依次爲L1->L2->L3

原创 鏈表問題13——刪除無序單鏈表中值重複出現的節點(方法二)

題目 同上一篇題目,本篇介紹方法二類似於選擇排序的過程,時間複雜度爲O(),額外空間複雜度爲O(1), 思路 按順序遍歷節點 先是記錄當前節點,然後去查看後面是否還有重複,有的話刪掉,直到遍歷完 然後重複2過程,直到遍歷完鏈表 源碼 p

原创 鏈表問題14——在單鏈表種刪除指定值的節點

題目 給定一個鏈表的頭節點head和一個整數num,實現函數將值爲num的節點全部刪除。 原鏈表 刪除後鏈表 1->2->3->4->null,  num=3 1->2->4->nulll 思路 方法一:利用棧,時空複雜度均爲O(N) 

原创 基礎知識——測試代碼(七)

基礎點 測試概念:Python標準庫中的模塊unittest提供了代碼測試工具。單元測試用於覈實函數的某個方面沒 有問題;測試用例是一組單元測試,這些單元測試一起覈實函數在各種情形下的行爲都符合要求。 unittest Module中

原创 基礎知識——用戶輸入和函數(五)

基礎點 用戶輸入:message=input("用戶輸入:") 函數傳遞列表參數,並且禁止修改列表:列表爲a,函數爲func(),調用func(a[:]),此時傳遞的是列表a的副本,不影響a 傳遞任意數量實參: 函數的參數可以寫*arg,

原创 基礎知識——操作列表(三)

基礎點 遍歷列表:  names=['a','b','c'];通過 for name in names: 即可遍歷 創建數值列表:range(1,5)會得到 1,2,3,4沒有5也就是range(n,m)會從n到m-1;通過list(ra

原创 第7章——狄克特斯拉算法

算法比較 相比於第6章的廣度優先算法計算的是無權圖中的最短路徑,狄克特斯拉算法計算的是加權圖中的最短路徑 算法流程 找出最便宜的節點,即可在最短時間內前往的節點。 對於該節點的鄰居,檢查是否有前往它們的更短路徑,如果有,就更新其開銷。 重

原创 詞向量到Bert代碼——部分習題

習題 from gensim.models import word2vec sentences = ... model = Word2Vec(sentences, size=100, window=5, min_count=5, wo

原创 基礎知識——類和文件和異常(六)

基礎點 子類初始化父類:super().__init__(make, model, year)中的參數都是父類中init函數的參數 子類重寫父類方法:同名即可 文件打開路徑:windows下是 \, linux 和 mac os 下是 /

原创 初次遇見NLP:從詞向量到BERT

目錄 一、詞向量Word2vector 二、Transformer 三、Bert 一、詞向量Word2vector 語言的表達形式有兩種:一種是離散的符號,一種是基於上下文的。eg.我 愛 你 我 100 愛 010 你 001 上面的

原创 基礎知識——列表簡介(二)

基礎點 添加元素:a=['1','2'], a.append('3');append 會直接插入末尾;a.insert(0,'0'),而insert可以選擇位置 根據索引/位置刪除元素:del a[0] del可以刪除任何位置的元素;a.