原创 數據結構之最短路徑------迪傑斯特拉算法(C語言、圖)

【問題描述】 在帶權有向圖G中,給定一個源點v,求從v到G中的其餘各頂點的最短路徑問題,叫做單源點的最短路徑問題。 在常用的單源點最短路徑算法中,迪傑斯特拉算法是最爲常用的一種,是一種按照路徑長度遞增的次序產生最短路徑的算法。 在

原创 Python每日算法一練之“孤獨的數”(異或操作的魅力)

問題描述: 給出2n+1個非負整數的數組,除其中一個數字之外,其他每個數字均出現兩次,找到這個數字。 問題示例: 給出[1,2,2,1,3,4,3],返回4。 代碼實現: class Solution: def single

原创 Python學習之路-----集合操作

集合 集合(set)是一個無序的不重複元素序列。 可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因爲 { } 是用來創建一個空字典。 創建一個空集合 和 空字典 e

原创 Python每日一算法之”最接近k個數”(列表函數運用)

問題描述: 給定一個目標數target,一個非負整數k,一個按照升序排列的數組A。在A中找出與target最接近的k個整數,返回這k個數並按照與target的接近程度從小到大排序,如果接近程度相同,那麼值小的排在前面。 問題示例:

原创 Python每日一算法之“下一個更大的數”(列表模擬循環隊列、棧)

問題描述: 給定一個環形數組,即最後一個元素的下一個元素是數組的第一個元素(類似數據結構中的循環隊列),爲每個元素打印下一個更大的元素。數字x的下一個更大的數,是遍歷數組的過程中出現的第一個更大的數字,這意味着可以循環搜索以查找下

原创 Python每日一算法之“創建最大數”(優化提高)

問題描述: 給定兩個長度分別爲m和n的數組,數組的每個元素都是數字0~9,從這兩個數組中選出k個數字來創建一個最大值,其中k滿足k<=m+n,選出來的數字在創建最大數裏的位置必須與在原數組內的相對位置一致。返回k個元素的整數數組,

原创 Python學習之路-----Number及數學函數、隨機數函數和三角函數

數字 Number 變量在使用前必須先被賦值,否則將出現錯誤: >>> n Traceback (most recent call last): File "<pyshell#0>", line 1, in <module>

原创 Python每日一練算法之“滑動窗口的最大值”(列表操作)

問題描述: 給定一個可能包含重複整數的數組和一個大小爲k的滑動窗口,從左到右在數組中滑動這個窗口,找到數組中每個窗口中的最大值。 解釋:也就是找到每個窗口中的最大值,加入到一個新的數組中,問題不難,個人覺得意在考察對列表的操作(m

原创 Python學習之路------列表

列表 序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。序列都可以進行的操作包括索引,切片,加,乘,檢查成員。 創建一個列表 list_name = [elem1,elem2,…]

原创 Python每日一練算法之兩整數相除(不使用乘法、除法和mod運算)

問題描述: 要求不使用乘法、除法和mod運算符,實現兩個整數相除,如果溢出,返回2147483647 問題示例: 輸入100和9,輸出11 代碼實現: 解題思路: divdend = divisor * re,而任何一個整數都可以

原创 Python每日一練算法之“下一個稀疏數”(遞歸,十進制轉二進制字符串)

問題描述: 如果一個數是稀疏數,則它的二進制表示中沒有相鄰的1,例如5(101)是稀疏數,但是6(110)不是稀疏數,本例將給出一個n,找出大於或等於n的最小稀疏數 問題示例: 給出n=6,返回8;給出n=4,返回4;給出n=38

原创 Linux學習之路-----命令行模式下的任務執行

在終端登錄Linux 常常我們打開Linux系統是進入到X Window的窗口管理器環境(就是像Windows的桌面環境一樣),但同樣Linux也有命令行界面的環境。 Linux在默認的情況下會提供六個終端來讓用戶登錄,且換方式爲

原创 Python學習之路-----基礎數據類型

基礎數據類型 python版本 3.7.7 Python 中的變量不需要聲明。但是每個變量在使用前都必須賦值,變量賦值以後該變量纔會被創建。在Python中,變量就是變量,沒有類型。我們所說的“類型”是變量所指內存中對象的類型。即

原创 Python每日一練算法之整數替換(DFS)

問題描述: 給定一個正整數n,如果n爲偶數,將n替換爲n/2;如果n爲奇數,將n替換爲n+1或n-1,那麼將n轉換爲1,最少的替換次數爲多少? 問題示例: 輸入8,輸出3,即8->4->2->1;輸入7,輸出4,即7->8->4-

原创 Python每日一練算法之整數排序(快排、冒泡)

使用IDLE python 3.7.7 問題描述: 給出一組整數,將其按照升序排序。 問題示例: 給出[3,2,1,4,5],排序後結果爲[1,2,3,4,5] 代碼實現: 方法1:冒泡排序 #An integer sorting