Dec 12 2025
sevencoding -
查找算法
二分查找
二分查找(Binary Search)是一種高效的查找算法,也叫折半查找。核心思想:對於一個有序的數據集合,每次查找都將查找範圍縮小為原來的一半,直到找到目標值或確定目標值不存在。二分查找要求數據必須是有序的,經常應用於數組等支持隨機訪問的數據結構裏。跟線性查找相比,二分查找的效率要高得多,特別是對於大規模數據集。
算法步驟
確定查找範圍的左邊界 left 和右邊界 right
計
JAVA
Dec 11 2025
sevencoding -
劍指offer-49、把字符串轉換成整數
題⽬描述
請你來實現⼀個 myAtoi(string s) 函數,使其能將字符串轉換成⼀個 32 位有符號整數(類似C/C++ 中的 atoi 函數)。
函數 myAtoi(string s) 的算法如下:
讀⼊字符串並丟棄⽆⽤的前導空格
檢查下⼀個字符(假設還未到字符末尾)為正還是負號,讀取該字符(如果有)。 確定最終結果是負數,還是正數。 如果兩者都不存在,則假定結果為正。
讀⼊下⼀個
後端
Dec 11 2025
sevencoding -
劍指offer-49、把字符串轉換成整數
題⽬描述
請你來實現⼀個 myAtoi(string s) 函數,使其能將字符串轉換成⼀個 32 位有符號整數(類似C/C++ 中的 atoi 函數)。
函數 myAtoi(string s) 的算法如下:
讀⼊字符串並丟棄⽆⽤的前導空格
檢查下⼀個字符(假設還未到字符末尾)為正還是負號,讀取該字符(如果有)。 確定最終結果是負數,還是正數。 如果兩者都不存在,則假定結果為正。
讀⼊下⼀個
JAVA
Dec 10 2025
sevencoding -
劍指offer-48、不使⽤加減乘除實現加法
題⽬描述
寫⼀個函數,求兩個整數之和,要求在函數體內不得使⽤ + 、 - 、 * 、 / 四則運算符號。
示例1
輸⼊:1,2
返回值:3
思路及解答
位運算迭代法(推薦)
將加法分解為「無進位和」+「進位值」,循環直到進位為0
位運算加法的數學原理:
異或運算 (^):實現無進位加法
0^0=0, 0^1=1, 1^0=1, 1^1=0(進位丟失)
與運算 (
後端
Dec 10 2025
sevencoding -
劍指offer-48、不使⽤加減乘除實現加法
題⽬描述
寫⼀個函數,求兩個整數之和,要求在函數體內不得使⽤ + 、 - 、 * 、 / 四則運算符號。
示例1
輸⼊:1,2
返回值:3
思路及解答
位運算迭代法(推薦)
將加法分解為「無進位和」+「進位值」,循環直到進位為0
位運算加法的數學原理:
異或運算 (^):實現無進位加法
0^0=0, 0^1=1, 1^0=1, 1^1=0(進位丟失)
JAVA
Dec 09 2025
sevencoding -
劍指offer-47、求1+2+3...+n
題⽬描述
求 1+2+3+...+n ,要求不能使⽤乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等關鍵字及條件判斷語句( A?B:C )。
示例
輸⼊:5
輸出:15
思路及解答
用for循環
這個問題,如果直接使⽤ for 循環,超級簡單,重拳出擊,時間複雜度為 O(n) 。代碼如下:
public class Solution {
後端
Dec 09 2025
sevencoding -
劍指offer-47、求1+2+3...+n
題⽬描述
求 1+2+3+...+n ,要求不能使⽤乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等關鍵字及條件判斷語句( A?B:C )。
示例
輸⼊:5
輸出:15
思路及解答
用for循環
這個問題,如果直接使⽤ for 循環,超級簡單,重拳出擊,時間複雜度為 O(n) 。代碼如下:
public class Solution {
JAVA
Dec 08 2025
sevencoding -
十大經典排序算法
引言
所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序算法,就是如何使得記錄按照要求排列的方法。排序算法在很多領域得到相當地重視,尤其是在大量數據的處理方面。一個優秀的算法可以節省大量的資源。在各個領域中考慮到數據的各種限制和規範,要得到一個符合實際的優秀算法,得經過大量的推理和分析。
簡介
排序算法可以分為:
內部排序:數據記錄在內存中進行排序。
後端
Dec 08 2025
sevencoding -
十大經典排序算法
引言
所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序算法,就是如何使得記錄按照要求排列的方法。排序算法在很多領域得到相當地重視,尤其是在大量數據的處理方面。一個優秀的算法可以節省大量的資源。在各個領域中考慮到數據的各種限制和規範,要得到一個符合實際的優秀算法,得經過大量的推理和分析。
簡介
排序算法可以分為:
內部排序:數據記錄在內存中進行排序。
JAVA
,
後端
Dec 05 2025
sevencoding -
數據結構——樹
概述
樹就是一種類似現實生活中的樹的數據結構(倒置的樹)。任何一顆非空樹只有一個根節點。
樹的定義:樹是⼀種數據結構,它是由n(n≥1)個有限節點組成⼀個具有層次關係的集合。把它叫做“樹”是因為它看起來像⼀棵倒掛的樹,也就是説它是根朝上,⽽葉朝下的。
一棵樹具有以下特點:
每個節點有零個或多個⼦節點
沒有⽗節點的節點稱為根節點
每⼀個⾮根節點有且只有⼀個⽗節點
除了根節點外,每個⼦節點可
後端
Dec 05 2025
sevencoding -
數據結構——樹
概述
樹就是一種類似現實生活中的樹的數據結構(倒置的樹)。任何一顆非空樹只有一個根節點。
樹的定義:樹是⼀種數據結構,它是由n(n≥1)個有限節點組成⼀個具有層次關係的集合。把它叫做“樹”是因為它看起來像⼀棵倒掛的樹,也就是説它是根朝上,⽽葉朝下的。
一棵樹具有以下特點:
每個節點有零個或多個⼦節點
沒有⽗節點的節點稱為根節點
每⼀個⾮根節點有且只有⼀個⽗節點
除了根節點外,每個⼦節點可
JAVA
Dec 04 2025
sevencoding -
劍指offer-46、孩⼦們的遊戲(圓圈中最後剩下的數)
題目描述
有個遊戲是這樣的:⾸先,讓 n 個⼩朋友們圍成⼀個⼤圈,⼩朋友們的編號是0~n-1。然後,隨機指定⼀個數 m ,讓編號為0的⼩朋友開始報數。每次喊到 m-1 的那個⼩朋友要出列唱⾸歌,然後可以在禮品箱中任意的挑選禮物,並且不再回到圈中,從他的下⼀個⼩朋友開始,繼續 0... m-1報數....這樣下去....直到剩下最後⼀個⼩朋友,可以不⽤表演,並且拿到⽜客禮品,請你試着想下,哪個⼩朋友
後端
Dec 03 2025
sevencoding -
劍指offer-45、撲克牌順⼦
題⽬描述
撲克牌可以組成順⼦,⼤\⼩ 王可以看成任何數字,並且 A 看作 1 , J 為 11 , Q 為 12 , K 為 13 。 5張牌 【A,0,3,0,5】 就可以變成“ 1,2,3,4,5 ”(⼤⼩王分別看作 2 和 4 ),這樣就組成了順⼦。(可以認為⼤⼩王是 0 。)
輸⼊五張牌,如果牌能組成順⼦就輸出true,否則就輸出 false 。
示例1
輸⼊:[0,3,2,6,4]
後端
Dec 02 2025
sevencoding -
劍指offer-44、翻轉單詞序列
題⽬描述
給定⼀個句⼦,將句⼦中的單詞進⾏翻轉,注意,單詞內部的字符順序不改變,改變的是單詞與單詞之間的順序,⽐如“ I am a coder. ”,翻轉之後變成“ coder. a am I ”。
示例
注意:引號內部才是輸⼊的內容
輸⼊:"You are a cool boy."
輸出:"boy. cool a are You"
思路及解答
Java內置函數分割反轉
Java
後端
Nov 28 2025
sevencoding -
線性數據結構
線性表示最常⽤⽽且最為簡單的⼀種數據結構,⼀個線性表示 n 個數據元素的有限序列,有以下特點:
存在唯⼀的第⼀個的數據元素
存在唯⼀被稱為最後⼀個的數據元素
除了第⼀個以外,集合中每⼀個元素均有⼀個前驅
除了最後⼀個元素之外,集合中的每⼀個數據元素都有⼀個後繼元素
線性表包括下⾯⼏種:
數組:查詢 / 更新快,查找/刪除慢
鏈表
隊列
棧
數組
數組簡介
數組(Array)
後端
Nov 27 2025
sevencoding -
劍指offer-43、左旋轉字符串
題⽬描述
彙編語⾔中有⼀種移位指令叫做循環左移( ROL ),現在有個簡單的任務,就是⽤字符串模擬這個指令的運算結果。對於⼀個給定的字符序列 S ,請你把其循環左移 K 位後的序列輸出。例如,字符序列S=”abcXYZdef” ,要求輸出循環左移3位後的結果,即“ XYZdefabc ”。是不是很簡單?OK,搞定它!
思路及解答
這道題⽬的意思就是將前⾯ n 位,移動到後⾯,那麼我們可以直接從第
後端
Nov 26 2025
sevencoding -
劍指offer-42、和為S的兩個數字
題⽬描述
輸⼊⼀個遞增排序的數組和⼀個數字 S ,在數組中查找兩個數,使得他們的和正好是 S ,如果有多對數字的和等於 S ,輸出兩個數的乘積最⼩的。
返回值描述:對應每個測試案例,輸出兩個數,⼩的先輸出。
輸⼊:[1,2,4,7,11,15],15
返回值:[4,11]
思路及解答
暴⼒遍歷
直接遍歷每兩個數,查看其和是否符合等於 sum ,再計算其乘積,是否⼩於之前的乘積,如果⼩於,則更
後端
Nov 25 2025
sevencoding -
劍指offer-41、和為S的連續正數序列
題⽬描述
⼩明很喜歡數學,有⼀天他在做數學作業時,要求計算出 9~16 的和,他⻢上就寫出了正確答案是 100 。但是他並不滿⾜於此,他在想究竟有多少種連續的正數序列的和為 100 (⾄少包括兩個數)。沒多久,他就得到另⼀組連續正數和為 100 的序列: 18,19,20,21,22 。現在把問題交給你,你能不能也很快的找出所有和為S的連續正數序列? Good Luck!
返回值描述:輸出所有和為
後端
Nov 24 2025
sevencoding -
SpringCloud 常見面試題(三)
服務網關
在微服務架構中,網關的作用是什麼
在微服務架構中,網關(Gateway)具有以下作用:
統一入口:網關為所有的微服務提供一個唯一的入口點,從而簡化了客户端與服務的交互,同時保障了後台服務的安全性。
鑑權校驗:網關能夠識別每個進來的請求,並根據其權限進行校驗,阻止不符合要求的請求通過。
動態路由:根據需要,網關可以動態地將請求路由到不同的後端集羣中,實現服務的靈活調度。
降低耦合
後端
Nov 21 2025
sevencoding -
SpringCloud 常見面試題(二)
配置中心
什麼是配置中心?有哪些常見的配置中心?
配置中心是一個用於配置集中化管理目支持動態更新、分發配置文件的工具(服務)。
它實現了配置的統一管理和動態同新,當配置信息發生變化時,配置中心可以自動通知服務實例進行配置更新,這樣就可以實例無需重啓即可應用最新的配置,從一定程度上減少了系統訪問的空窗期,非常靈活方便
常見的配置中心:
Spring Cloud Config:Spring 提供的
後端
Nov 20 2025
sevencoding -
劍指offer-40、數組中只出現⼀次的數字
題⽬描述
⼀個整型數組⾥除了兩個數字之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現⼀次的數字。
示例
輸入:[92,3,43,54,92,43,2,2,54,1]
輸出:3,1
思路解答
哈希表統計
使⽤ hashmap 存儲數字出現的次數, key 為出現的數字, value 為該數字出現的次數。遍歷⾥⾯所有的數字,如果 hashmap 中存在,那麼 value (次數)+1
後端
Nov 19 2025
sevencoding -
劍指offer-39、平衡⼆叉樹
題⽬描述
輸⼊⼀棵節點數為 n ⼆叉樹,判斷該⼆叉樹是否是平衡⼆叉樹。
在這⾥,我們只需要考慮其平衡性,不需要考慮其是不是排序⼆叉樹
平衡⼆叉樹( Balanced Binary Tree ),具有以下性質:它是⼀棵空樹或它的左右兩個⼦樹的⾼度差的絕對值不超過 1 ,並且左右兩個⼦樹都是⼀棵平衡⼆叉樹。
樣例解釋:
思路及解答
自頂向下遞歸(基礎解法)
平衡樹意味着我們需要對⽐任何在同⼀個根下的
後端
Nov 18 2025
sevencoding -
劍指offer-38、⼆叉樹的深度
題⽬描述
輸⼊⼀棵⼆叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的⼀條路徑,最⻓路徑的⻓度為樹的深度。
示例1
輸⼊:{1,2,3,4,5,#,6,#,#,7}
返回值:4
思路及解答
聲明:這⾥的輸⼊是⼀個數的根節點,也就是從根節點,我們就可以獲取到樹的所有節點,⽽類似數組的表達⽅式 {1,2,3,4,5,#,6,#,#,7} ,則是按照層次來放的。(⽐如
JAVA
,
後端
Nov 17 2025
sevencoding -
SpringCloud 常見面試題(一)
概念
什麼是微服務?你是怎麼理解微服務的?
微服務架構是一種架構模式或者説是一種架構風格,它提倡將單一應用程序劃分為一組小的服務,每個服務運行在其獨立的自己的進程中,服務之間相互協調、互相配合,為用户提供最終價值。服務之間採用輕量級的通信機制互相溝通(通常是基於HTTP的RESTful API),每個服務都圍繞着具體的業務進行構建,並且能夠被獨立的構建在生產環境、類生產環境等。另外,應避免統一的、
後端