原创 卜若的代碼筆記-DJAngo系列-第七章:上傳資源-後臺的處理

1.上一章裏面,我們提交了一個表單 表單的格式如下:   所以這一次,我需要在後臺上捕捉。 所有的controller都會放在view.py裏面我感覺有點奇葩  在view.py裏面隨便定義一個接口: 我們只接受post請求,做個判

原创 卜若的代碼筆記-數據結構系列-第十八章:隊列的經典應用.廣度搜索

1.先來看題目 實現原理很簡單,就是從邊緣向內部搜索,你可以深度搜索或者廣度搜索。就不做介紹了 /* * @lc app=leetcode.cn id=130 lang=java * * [130] 被圍繞的區域 */ //

原创 卜若的代碼筆記-數據結構系列-第十六章:隊列一.數組實現

1.實現思路如圖16-1所示 圖16-1: 當然,這種實現辦法有好處也有壞處。 壞處是,數組原先的資源沒有被釋放,留着佔內存。 另外,如果使用固定長度的數組,那麼很容易就會滿數組,從而爆出指針超過邊界的文圖 優化方式見圖16-2 好處是

原创 卜若的代碼筆記-數據結構系列-第十七章:隊列二.鏈表實現

1.使用數組實現的兩種方式,不前移和前移的優劣分別是 不前移的優劣: 入隊和出隊的時間複雜度均爲o(1) 但是極度吃內存,反正公司裏面寫這種代碼是要捱打的 前移的優劣: 出隊時間複雜度爲o(n) 這種寫也要捱打。 so,有沒有更好的實現方

原创 卜若的代碼筆記-數據結構系列-第十五章:棧的經典應用.深度優先搜索

1.這是在Leetcode上的一道題,我們去看一下它的題目 實現過程比較簡單,因爲代碼會在LeetCode裏面提交,我們就不用自己的寫的棧和鏈表了,我們學習使用一下Java的內部棧對象和動態數組  以下代碼是通過LeetCode測試的代

原创 卜若的代碼筆記-數據結構系列-第九章:鏈表體系實現類圖

1.鏈表實現類圖  2.操作元素的實現類圖   我們可以看到,當我們企圖依託於數據結構去實現某些解決策略的時候,我們不需要再構造一個複雜的新鏈表,比如我們的RevenueTable,去實現營業額的統計時,我們不會再重寫它的插入,刪除方法

原创 卜若的代碼筆記-數據結構系列-第十章:棧一.順序棧(數組棧)

1.棧有兩種寫法,一種是以數組爲軀幹的順序棧,一種是以鏈表爲軀幹的鏈式棧。 1.1棧的操作 1.1.1 出棧pop()函數 允許棧出,棧出之後,頂數據有移除操作。 時間複雜度o(1) 1.1.2 入棧push()函數 入棧,入棧之後,前一

原创 卜若的代碼筆記-數據結構系列-第十一章:棧二.順序棧(動態數組棧)

1.首先來說明一下什麼叫做動態數組。 本質上還是數組,只是每次向數組裏面添加的時候,如果檢查到數組的長度不夠的時候,就會產生以下動作: a.new 一個兩倍容量數組 b.將原始數組拷貝進去 關於拷貝方式的性能比較,我找到一篇比較好的博客

原创 卜若的代碼筆記-數據結構系列-第七章:鏈表-循環鏈表的實現

1.繼承自雙向鏈表,然後把雙向鏈表的尾巴的end的next指向head。然後它的Insert,delete,get,函數不變。 public static void main(String[] args) throws IOExcep

原创 卜若的代碼筆記-數據結構系列-第十三章(補充):泛型單向鏈表

1.泛型元素 public interface Element<T> { Element getNext(); void setNext(Element t); T getValue(); void

原创 卜若的代碼筆記-數據結構系列-第六章:鏈表-雙向鏈表應用典型-營業額統計問題

Description 給出n個數,求每個數和它前面每個數的差值絕對值的最小值之和。 n<=32767 比如輸入1,2,3,4,5 那麼輸出就是1+1+1+1 = 4 min(2-1)+min(3-2,2-1)+min(4-3,4-2,4

原创 卜若的代碼筆記-數據結構系列-第十二章:棧三.鏈棧

1.太簡單了,不介紹了,直接貼代碼,有問題請看10,11,章 //測試代碼 public static void main(String[] args) throws IOException { LinkSt

原创 卜若的代碼筆記-數據結構系列-第八章:鏈表-循環鏈表的典型應用:丟手絹

1.算法題目 有一羣小屁孩圍坐一圈,編號從1排到10。然後主持者丟了一個骰子,1~6,會隨機出一個數,比如出了一個3,然後他們就從頭開始,數1,2,3,...數到3的人出隊,其餘人再繼續數,直到只剩下兩人,那其他人請那兩人吃雪糕。問:誰最

原创 卜若的代碼筆記-數據結構系列-第五章:鏈表-三四章中鏈表元素的add函數的性能嚴重錯誤分析及其修改

1.來看三四章中的add函數的實現 你是否感覺到問題呢? 如果只添加一個元素,通常情況下,你感覺不到,但是,如果我添加n個元素,你覺得時間複雜度是多少呢? 1+2+3+4+...+n! 所以時間複雜度是o(n!) 這對性能來講是很糟糕的