原创 力扣621——任務調度器

這道題主要是找規律,優化的時候可以採用貪心算法的思想。 原題 給定一個用字符數組表示的 CPU 需要執行的任務列表。其中包含使用大寫的 A - Z 字母表示的26 種不同種類的任務。任務可以以任意順序執行,並且每個任務都可以在 1

原创 力扣739——每日溫度

這道題主要是找規律,優化的時候可以利用數據結構的特性(數組和棧)。 原題 根據每日氣溫列表,請重新生成一個列表,對應位置的輸入是你需要再等待多久,溫度纔會升高超過該日的天數。如果之後都不會升高,請在該位置用 0 來代替。 例如,給

原创 力扣406——根據身高重建隊列

這道題主要涉及的是找規律和快速排序,優化時需要考慮 Java 中數據結構的特性。 原題 假設有打亂順序的一羣人站成一個隊列。 每個人由一個整數對(h, k)表示,其中h是這個人的身高,k是排在這個人前面且身高大於或等於h的人數。

原创 力扣394——字符串解碼

這道題主要涉及的是對遞歸和棧的理解。 原題 給定一個經過編碼的字符串,返回它解碼後的字符串。 編碼規則爲: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證爲

原创 力扣287——尋找重複數

這道題主要就是找規律,基於之前142題環形鏈表II的規律,就能解決了。 原題 給定一個包含 n 1 個整數的數組 nums,其數字都在 1 到 n 之間(包括 1 和 n),可知至少存在一個重複的整數。假設只有一個重複的整數,

原创 力扣227——227. 基本計算器 II

這道題類似於一般計算式解答,可以用棧解決,優化的時候可以利用題目本身的特殊性。 原題 實現一個基本的計算器來計算一個簡單的字符串表達式的值。 字符串表達式僅包含非負整數,+, - ,*,/ 四種運算符和空格  。 整數除法僅保留

原创 劍指offer 43——1~n整數中1出現的次數

本題主要在於找規律,從一個例子開始,總結出其中的規律。原題輸入一個整數 n ,求1~n這n個整數的十進制表示中1出現的次數。例如,輸入12,1~12這些整數中包含1 的數字有1、10、11和12,1一共出現了5次。示例 1:輸入:n =

原创 劍指offer 38——字符串的排列

本題主要在於對回溯的理解,優化時可以結合 java 特性,以及排列的一些知識。原題輸入一個字符串,打印出該字符串中字符的所有排列。你可以以任意順序返回這個字符串數組,但裏面不能有重複元素。示例:輸入:s = "abc" 輸出:["abc

原创 jsp分頁的處理(SSM框架舉例)

首先我們需要一個工具類Page類來表達: import java.util.List; public class Page { private int everyPage = 10; //每頁顯示的條數 private in

原创 劍指offer 33——二叉搜索樹的後序遍歷序列

本題主要在於考察對二叉搜索樹和後序遍歷的理解。原題輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷結果。如果是則返回 true,否則返回 false。假設輸入的數組的任意兩個數字都互不相同。參考以下這顆二叉搜索樹: 5

原创 Java 線程池講解——針對 IO 密集型任務

針對 IO 密集型的任務,我們可以針對原本的線程池做一些改造,從而可以提高任務的處理效率。基本在阿里巴巴泰山版java開發手冊中有這麼一條:線程池不允許使用 Executors 去創建,而是通過 ThreadPoolExecutor 的

原创 劍指offer 31——棧的壓入、彈出序列

本題主要在於考察棧的特性,優化時可以考慮自己實現一個棧。原題輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序。假設壓入棧的所有數字均不相等。例如,序列 {1,2,3,4,5} 是某棧的壓棧序列,序列 {

原创 劍指offer 16——數值的整數次方

這道題可以利用二進制,就可以快速解決了。原題實現函數double Power(double base, int exponent),求base的exponent次方。不得使用庫函數,同時不需要考慮大數問題。示例 1:輸入: 2.0000

原创 劍指offer 14——剪繩子

這道題的一般解法是動態規劃,優化時可以嘗試找規律。原題給你一根長度爲 n 的繩子,請把繩子剪成整數長度的 m 段(m、n都是整數,n>1並且m>1),每段繩子的長度記爲 k[0],k[1]...k[m] 。請問 k[0]*k[1]*..

原创 劍指offer 13——機器人的運動範圍

這道題本質還是搜索,因此可以使用深度優先搜索和廣度優先搜索進行解決。原題地上有一個m行n列的方格,從座標 [0,0] 到座標 [m-1,n-1] 。一個機器人從座標 [0, 0] 的格子開始移動,它每次可以向左、右、上、下移動一格(不能