原创 LeetCode 146 LRU緩存機制

運用你所掌握的數據結構,設計和實現一個  LRU (最近最少使用) 緩存機制。它應該支持以下操作: 獲取數據 get 和 寫入數據 put 。 獲取數據 get(key) - 如果密鑰 (key) 存在於緩存中,則獲取密鑰的值(總是正數)

原创 LeetCode 4 尋找兩個有序數組的中位數

給定兩個大小爲 m 和 n 的有序數組 nums1 和 nums2。請你找出這兩個有序數組的中位數,並且要求算法的時間複雜度爲 O(log(m + n))。你可以假設 nums1 和 nums2 不會同時爲空。 輸入:nums1 = [1

原创 代碼異味(code smell):代碼的壞味道

定義: 由於設計缺陷或不良編碼習慣而引入程序的、導致深層次質量問題的代碼症狀。   常見的代碼異味: 1 BLOB      實現多個職責、具有大量屬性、操作、與數據類有依賴關係的類。 2 依戀情結 (Feature Envy)     

原创 LeetCode 5 最長迴文子串

給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。 輸入:babad 輸出:bab   python: class Solution: def longestPalindrome(self,

原创 吳恩達 機器學習課程 coursera 第二次編程作業(Logistic Regression Regularized) python實現

本文是吳恩達機器學習課程的第二次編程作業:Logistic Regression Regularized 的擴展作業,用python實現。   本作業包含5個文件,分別是: ex2_reg.py 主程序入口 predict.py 預測函數

原创 python 解決pycharm第三方庫安裝後import報錯【ModuleNotFoundError:No module named'XXX'】

本文解決pycharm第三方庫安裝後依舊import報錯【ModuleNotFoundError:No module named'XXX'】的問題。 解決方案: 1)進入【File】→【Settings】→【Project】→【Proje

原创 LeetCode 394 字符串解碼

給定一個經過編碼的字符串,返回它解碼後的字符串。編碼規則爲: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證爲正整數。 輸入:3[a]2[bc] 輸出:aaabcb

原创 軟件項目風險因素的分類 (risk factor)

根據Sheta關於評估項目進度表計劃安排的觀點,進度表可以從四個角度去評估: (1)誰將在項目中工作 who (2)他們將做什麼 what (3)項目何時開始 when start (4)項目何時完成 when end 由此可以看出人對於

原创 LeetCode 349 兩個數組的交集

給定兩個數組,編寫一個函數來計算它們的交集。 輸入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出:[9,4]   python3: class Solution: def intersectio

原创 華爲開發崗面試字符串排序python

給定幾個國家字符串,首先將其按首字母字典順序排序,再按照給定國家字符串逆序排序。 輸入:China India England America 輸出:America China England India 輸入:China 輸出:Chin

原创 python pip安裝第三方包 pip的安裝與使用

本文記錄了一些常見的pip使用方法。 1 進入命令提示符 快捷鍵【Wind】+【R】,搜索cmd,回車即可進入命令提示符界面。 2 顯示pip版本和路徑 pip --version 3 升級pip pip install -U pip

原创 軟件項目中的常見風險因素

本文將按照項目參與人員的角色,將風險因素分爲三類:項目管理人員、項目涉及客戶/用戶、項目涉及員工,分組後的軟件風險因素清單見下。 1 項目管理人員 資源的分配與評估(人、預算、時間、任務、設備……) 1)成本估算不準確 2)進度表不切實際

原创 LeetCode 23 合併K個排序鏈表

合併 k 個排序鏈表,返回合併後的排序鏈表。請分析和描述算法的複雜度。   輸入:1->4->5, 1->3->4, 2->6 輸出:1->1->2->3->4->4->5->6   python3: class Solution:

原创 python實現各種排序算法(冒泡,插入,選擇,快速,歸併,計數)

本文用python3實現了各種排序算法,包括冒泡排序、插入排序、選擇排序、快速排序、歸併排序、計數排序。 (一)冒泡排序 def bubbleSort(s): for i in range(len(s)): f

原创 散列表(Hash Table)中的散列函數和散列衝突解決

散列表的英文叫“Hash Table”,平時也叫它“哈希表”或“Hash表”。散列表是用數組支持按照下標隨機訪問數據的特性。 將鍵(key)轉化爲數組下標的映射方法就叫作散列函數,而散列函數計算得到的值就叫作散列值。 散列函數 定義爲ha