原创 劍指offer-兩個隊列實現一個棧-Java

兩個棧實現一個隊列看這裏 本文是兩個隊列實現一個棧 思路,構造兩個隊列q1和q2,入棧的時候把元素扔到q1裏, 出棧的時候檢查q1是否只有一個元素,是的話直接返回就行, 不是的話: 將q1中的前n-1個元素放到q2裏, q1中剩餘的一個元

原创 劍指offer變體-找出數組裏只出現一次的數字,返回該數字的下標-Java

一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次。 請寫程序找出這兩個只出現一次的數字,返回該數字的下標。 這個題以前寫過,鏈接在這裏,以前是返回一個值,這次是返回一個下標 (開數組的思想也可以返回數的值,return的時候)。 思

原创 二叉樹中序遍歷非遞歸-Java版

先序和層次遍歷在這裏 思路: 只用一個額外結點p。 構造一個棧,將根節點入棧。 每次循環做如下事情; p來控制左孩子一直入棧,直到沒有左孩子,這時p在最左邊的結點。 這時如果p有右孩子,就將p指向p的右孩子,並將右孩子入棧。 如果沒有的話

原创 遞歸、非遞歸求二叉樹的深度-Java

求二叉樹的深度,可以從層次遍歷的方式入手,層次遍歷用的是隊列,遍歷的條件是當前隊列是否爲空。 這裏我們用一個值nums記錄當前層的節點數,另一個值nextnums記錄下一層的節點數,一個值deepth記錄深度。 外層循環爲while,本層

原创 什麼是循環依賴?Spring是如何解決循環依賴這個問題的?

什麼是循環依賴? 其實就是循環引用,也就是兩個或則兩個以上的bean互相持有對方,最終形成閉環。比如A依賴於B,B依賴於C,C又依賴於A。 怎麼產生的? Spring的單例對象的初始化主要分爲三步: (1)createBeanInst

原创 數據庫索引的原理、分類、優缺點、爲什麼不用B樹、紅黑樹、Hash?什麼時候該用索引?索引什麼時候會失效?

1. 什麼是索引 數據庫索引,是數據庫管理系統中一個排序的數據結構,以協助快速查詢,更新數據庫中表的數據. 索引的實現通常使用B樹和變種的B+樹(mysql常用的索引就是B+樹) 索引是在存儲引擎中實現的,也就是說不同的存儲引擎,會使用不

原创 什麼是死鎖?死鎖的產生必須滿足的條件是什麼?手寫一個死鎖吧-Java

死鎖指的是兩個或者多個線程,因爭奪資源而造成的相互等待的情況。 產生死鎖的原因有主要還是系統資源分配不均(系統資源不足)。 死鎖有4個必須滿足的條件: 1. 請求保持條件。至少得有一個線程已經拿到了A資源,又去請求B資源 2. 不

原创 瀏覽器輸入URL後發生了什麼?以及後面的連環炮式提問該怎麼應對?

聲明:博客內容是彙總的,侵刪~ 說一下本篇博客回答了哪些問題: 1. 瀏覽器輸入URL後發生了什麼?各個步驟都用到了哪些協議? 一會說。 2. 瀏覽器在與服務器建立了一個 TCP 連接後是否會在一個 HTTP 請求完成後斷開?什麼情況下會

原创 HTTP 知多少?HTTP報文格式+請求頭+請求類型+請求狀態碼

1. HTTP報文基本格式 HTTP請求報文組成:請求行+請求頭+請求體 請求行:包含用於請求的方法(HEAD/GET/POST),請求 URI 和 HTTP 版本。 請求頭:客戶端的Cookie和User-Agent就放在這裏. 請求體

原创 遍歷HashMap的幾種方式以及如何獲得Hashmap的key和Vaue-Java

一般用的時候分爲以下幾種情況。 For-Each循環是Java5新引入的,遍歷的map是null的話,For-Each循環會拋出NullPointerException異常,所以在遍歷之前你應該判斷是否爲空引用。 1. 遍歷key(比

原创 輸出距離平均值距離最近的三個數

2020農行軟開實習的筆試題,第一題。 編寫程序計算10個正整數的平均數,找出這10個數中雨平均值的距離最近的三個數(差值的絕對值)。以距離的大小對這三個數進行排序並輸出(距離小的先輸出) 輸入:[33,44,61,2,36,42,56,

原创 輸出鏈表的倒數第N個元素-Java

思路,倒數第N個元素,遍歷鏈表,構造兩個指針。 第一個從頭先遍歷N個節點,然後停下來。 第一個接着繼續遍歷,第二個從頭開始遍歷(同時遍歷),直到第一個遍歷到null爲止。 這時第二個指針所在的位置就是倒數第N個元素的位置。 public

原创 字符串循環右移-三次翻轉思想-Java實現

編寫⼀個函數,把⼀個 CHAR 組成的字符串循環右移 N 位。例如:原來 是”ABCDEFGHI”,如果 N = 2,移位後應該是”HIABCDEFG” 三次翻轉的思想,下午寫xx公司筆試題的時候寫到了。 注意下標即可。 public

原创 計算n的階乘-防止溢出-Java

int的最大值是2的32次方減一=2147483648-1=2147483647 使用遞歸計算階乘的時候,13!應爲6,227,020,800,卻被算成了1932053504。 溢出了。 防止溢出思路:用一個數組res存儲結果,用一個to