原创 面試題:一億個數中選取TopN——python解決

題目描述:對10億個數,取TOP-1000 (有限的內存和計算複雜度) 解題思路:            數據量過大,考慮內存和計算複雜度的問題,不能選取直接對10億個數據進行排序,再選取top100的數。 採用構建堆的方法,再對剩下的數

原创 構建乘積數組——牛客、劍指offer題目(python解決)

題目說明: 給定一個數組A[0,1,...,n-1],請構建一個數組B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 解決方案:B數組中元素

原创 從尾到頭打印鏈表(解決)

題目描述: 輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。 解題思路: 對鏈表進行遍歷,每次遍歷都將元素插入到待返回list的首位中。 代碼如下: # -*- coding:utf-8 -*- # class ListN

原创 找到K個最接近的元素

題目描述: 解決代碼:   class Solution(object): def findClosestElements(self, arr, k, x): """ :type arr: Li

原创 有序矩陣中的第K小的元素

題目描述: 解決代碼: class Solution(object): def kthSmallest(self, matrix, k): """ :type matrix: List[List

原创 左旋轉字符串(劍指offer)

題目描述: 彙編語言中有一種移位指令叫做循環左移(ROL),現在有個簡單的任務,就是用字符串模擬這個指令的運算結果。對於一個給定的字符序列S,請你把其循環左移K位後的序列輸出。例如,字符序列S=”abcXYZdef”,要求輸出循環左移3位

原创 二維數組中的查找——牛客網、劍指offer(python解決)

題目描述: 在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 解法1:暴力解決 直接套兩層循環

原创 最小覆蓋子串(Leetcode困難題,python解決)

題目描述: 解決思路:滑動窗口 1. 初始,left指針和right指針都指向S的第一個元素. 2. 將 right指針右移,擴張窗口,直到得到一個可行窗口,亦即包含TT的全部字母的窗口。 3. 得到可行的窗口後,將left指針逐個

原创 相交鏈表(python解決)

題目描述: 解決方案: 直接先遍歷第一個鏈表,將值保存在一個字典中,再在第二個鏈表中尋找是否有相同的數即可/ 解決代碼:   # Definition for singly-linked list. # class ListNode(

原创 數組中重複的數字——牛客網、劍指offer題目(python解決)

題目描述: 在一個長度爲n的數組裏的所有數字都在0到n-1的範圍內。 數組中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。 例如,如果輸入長度爲7的數組{2,3,1,0,2,5,3

原创 機器學習經典算法回顧之——邏輯迴歸(LogisiticRegression)

       寫在前面的話:從今天開始,更新Leetcode算法題的同時,對學習過的經典機器學習算法做一個回顧與總結,以發博文的方式作爲一個記錄與學習筆記。 1.邏輯迴歸的模型函數: 其中:        可以看到,邏輯迴歸的x值是嵌套

原创 第一個只出現一次的字符(劍指offer python)

題目描述: 在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫). 解決思路: 用一個字典保存字符串中每個字符出現的次數,再用一個遍歷,找到第

原创 Leetcode——兩數相加(中等難度)-python解決

題目描述: 主要是考察鏈表的操作,用鏈表來模擬兩數相加 解決代碼如下: # Definition for singly-linked list. # class ListNode(object): #     def __init__(

原创 實現strStr()——python解決

題目描述: 解決代碼如下: class Solution(object): def strStr(self, haystack, needle): """ :type haystack: str

原创 長度最小的子數組(中等難度、python解決)

題目描述: 給定一個含有 n 個正整數的數組和一個正整數 s ,找出該數組中滿足其和 ≥ s 的長度最小的連續子數組。如果不存在符合條件的連續子數組,返回 0。 示例: 輸入: s = 7, nums = [2,3,1,2,4,3] 輸出