原创 Requests模擬登陸

原理 有時候爬取的內容需要登錄才能看到,這時就要求爬蟲能夠登錄網站,並保持登錄狀態。比如我們登錄了一個網站:豆瓣,打開新的豆瓣網頁會發現還是處於登錄狀態。那麼,網站是如何保持這種登錄狀態的呢?我們是否可以利用爬蟲保持登錄狀態,實現

原创 爬取新浪微博網站

今天我們來使用 Selenium 爬取動態網頁,以新浪微博網站爲例。我們需要分以下三步進行爬取: 登錄新浪微博網站 解析微博網站頁面 定時重新打開微博首頁,爬取最新發布的微博或者拉動滾動條爬取更多以前的微博 代碼如下 # -*

原创 動態網頁的抓取

在進行爬蟲的時候,有時候我們在網頁中看到的數據是一個樣子的,但是抓取到的數據卻是另外一個樣子的。這是爲什麼呢?這個時候啊很可能我們抓取的是動態網頁。動態網頁的代碼雖然沒有改變,但是顯示的內容卻是可以隨着時間、環境或者數據庫操作的結

原创 LeetCode_1“兩數之和”

題目描述 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和爲目標值的那 兩個 整數,並返回他們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個數組中同樣的元素。 示例: 給定

原创 LeetCode_3 “無重複字符的最長字串”

題目描述 給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3 解釋: 因爲無重複字符的最長子串是 "abc",所以其長度爲 3。 示例 2: 輸入: "bbb

原创 哈希表入門

哈希表 1. Map和HashMap? Map是一個以 鍵值(Key)-數值(Value) 對應形式存儲數據的接口。 在數組中我們是通過數組下標來對其內容索引的,而在Map中我們通過對象來對對象進行索引,用來索引的對象叫做key

原创 try、catch優化你的程序

今天依舊是刷題的一天,在做LeetCode的題目8時遇到了一個問題 Exception in thread “main” java.lang.NumberFormatException: For input string: “2

原创 “遞歸”,你真的掌握了嗎?

遞歸 基本概念:一個函數調用其自身,就是遞歸 遞歸和普通函數調用一樣,是通過棧實現的 遞歸的作用(適用情況) 替代多重循環 解決本來就是用遞歸形式定義的問題 將問題分解爲規模更小的子問題進行求解 兩個要素 如何將一個大規

原创 貪心算法

貪心算法 基本概念 所謂貪心算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,它所做出的僅僅是在某種意義上的局部最優解。貪心算法沒有固定的算法框架,算法設計的關鍵是貪心策略的選擇。必須注意

原创 淺談二分算法

二分算法 程序或算法的時間複雜度 基本概念 一個程序或算法的時間效率,也稱“時間複雜度”,有時簡稱“複雜度” 複雜度常用大寫字母OOO和小寫字母nnn來表示,nnn代表問題的規模 時間複雜度是用算法運行過程中,某種時間固定的操作

原创 LeetCode_7 “整數反轉”

題目描述 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 示例 1: 輸入: 123 輸出: 321 示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設

原创 分治算法,“分而治之”

分治 算法思想 把一個任務,分成形式和原任務相同,但規模更小的幾個部分任務(通常是兩個部分),分別完成,或只需要選一部分完成。然後再處理完成後的這一部分或幾個部分的結果,實現整個任務的完成。 基本例題 case 1:歸併排序 **

原创 “枚舉”真的要嘗試所有情況嗎?

枚舉 算法思想 基於逐個嘗試答案的一種問題求解策略 優化策略 枚舉雖然是一種逐個嘗試的問題求解策略,但是也是可以進行優化的,有些可能的答案或者可能的猜測在進行稍加判斷後,就可以直接排除掉,從而避免代入問題進行求解,進一步節省時間。

原创 LeetCode39 + 回溯算法

題目描述 給定一個無重複元素的數組 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和爲 target 的組合。 candidates 中的數字可以無限制重複被選取。 說明: 所有

原创 徹底搞懂“動態規劃”

動態規劃 1 問題導入 73 88 1 02 7 4 44 5 2 6 5 7\\ 3\space8\\ 8\space1\space0\\ 2\space7\space4\space4\\ 4\space5\space2\sp