原创 全排列JAVA實現

前言 參考資料 全排列:即所有的排列情況數,例如1,2,3的全排列包括:123,132,213,231,312,321這幾種情況,可以通過編程實現。 思路: fullSort方法接收三個參數,數組arr,起始位置start,終止爲

原创 劍指offer題目解析簡要總結

只簡要總結最優解思路和一些核心代碼 1 二維數組查找 描述:一個二維數組滿足每一行從左到右遞增,從上到下遞增。給定這樣數組和一個值,判斷其是否在數組中。 思路:從數組右上方開始尋找,如果當前值等於目標值返回,如果當前值大於目標

原创 並查集與常見面試題總結

簡介 參考鏈接 並查集是一種樹形的數據結構,用於處理不相交集合的合併和查詢問題。在判斷連通圖個數、朋友圈個數等有重要應用。 並查集主要涉及三個基本操作: makeSet(n):初始化一個獨立的集合,開始時每個元素的最高祖先爲自身

原创 二維矩陣中1所構成的塊個數(孤島問題)—頭條筆試題

問題 給定一個二維數組,數組中僅包含0和1,上下左右和對角線相連的1構成一個塊,求該二維數組中塊的個數。 例如: input: 3 1 0 1 1 1 0 1 0 1 output:2(最後一個1構成一個單獨的塊) 思路 (1)採

原创 計算機網絡面試必知知識點彙總—OSI,TCP/IP五層協議體系結構以及各層協議

OSI分層 (7層):物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。 TCP/IP分層(4層):網絡接口層、 網際層、運輸層、 應用層。 五層協議 (5層):物理層、數據鏈路層、網絡層、運輸層、 應用層。 每一層的協

原创 計算機網絡面試必知知識點彙總—TCP與UDP

TCP 和UDP的區別 (1)TCP提供的是面向連接的(虛擬信道在關閉連接前一直存在,來自物理信道的信道複用技術);可靠的數據流傳輸(無差錯,不丟失,不重複,且按序到達);傳輸單位爲TCP報文段;注重數據安全性;相關的協議有:FT

原创 單調棧與單調隊列

簡介 單調棧:棧中的元素從棧底到棧頂滿足單調性。以遞增棧爲例,如果新來元素大於等於棧頂元素則直接入棧,否則從棧頂開始依次將比新來元素大的元素出棧,以此來保證單調性。 單調隊列:隊列中的元素從頭到尾滿足單調性。以遞增隊列爲例,如果新

原创 Leetcode1--50題目思路簡要整理

下面只是對LeetCode1–100題最優思路和核心代碼的簡要整理,以應對面試中的手撕代碼環節。對於一般計算機專業出身的人來說,對於一個算法題目給定一個思路實現起來應該問題不大,關鍵在於找到這個思路。根據自己的面試經歷來看,面試

原创 Spring學習實踐思考-Spring中的數據操作

如何配置輸入源 (一)通過直接配置依賴方式 引入對應數據庫驅動–H2(在pom文件中書寫或者在生成的時候在界面上選中相應驅動項) 引入JDBC依賴–spring-boot-starter-jdbc (二)通過在代碼中添加數據源

原创 Spring學習實踐思考-第一個Spring應用HelloSpring

Spring Initializr -訪問start.spring.io,進行相關配置,自動生成工程; 選擇依賴管理工具,開發語言和SpringBoot的版本 填寫相應的Group名稱和Artifact名稱 選擇自己可能會用到

原创 Spring學習實踐思考-從Spring中看技術發展趨勢

Spring 5.x 的改變暗示什麼 支持Java8+,Kotlin。說明語言車輪滾滾向前。 支持WebFlux。異步編程模式的崛起。 去掉了很多支持例如Portlet,Velocity,JasperReport。 Sprin

原创 Spring系列學習實踐思考-初識Spring家族特性

Spring Framework的歷史 誕生於2002年,成型於2003年,最早的作者是Rod Jonnson 目前發展到Spring 5.x版本,支持JDK 8-11 和JAVA EE 8 Spring ,始於框架,但不限於框

原创 給定一個整數數組,求a[i]+a[j]+i-j的最大值—頭條筆試題

問題 給定一個整數數組,求數組中兩個數關於公式 a[i]+a[j]+i-j 的最大值,即找兩個數,這兩個數相加並減去兩個數之間的下標距離,求得最大值。 例如: input: 3 1 2 3 output: 4(選擇的兩個數是2和3

原创 大數據基礎理論—一致性協議

0. 前言 一致性協議的出現主要是爲了保證大規模分佈式系統的數據一致性,對分佈式系統設計具有很重要的作用。 一致性協議說白了就是,制定一個大家都公認的規則,在進行數據更新的時候都按照這個規則進行,既然這個規則這麼重要,那麼在設計規

原创 Java 13個語法糖梳理總結

0. 前言 爲什麼需要語法糖?語法糖可以讓程序更加簡潔,有更高的可讀性。舉個不太恰當但是可以說明問題的例子,很多飯店每天需要買菜,一般的買菜單都是由廚師手寫的,而有些蔬菜的名字比較難寫,所以他們在寫的時候跟採購的人達成一致,例如