題目連結: 98. Validate Binary Search Tree
題目描述
給定一個二元樹,請判斷它是否是一個有效的二元搜尋樹(Binary Search Tree,BST)。
一個有效的 BST 定義如下:
* 節點的左子樹只包含小於當前節點的數字。
* 節點的右子樹只包含大於當前節點的數字。
* 所有左子樹和右子樹自身也必須是二元搜尋樹。
限制條件
* 樹中節點的數量在範圍 [1, 10^4] 內。
* -2^{31} <= Node.val <= 2^{31}
連結: 86. Partition List
題意
要求將一個鏈結串列重新排列:
* 使所有小於特定值 x 的節點都出現在大於或等於 x 的節點之前。
* 分區操作應保持兩個分段中每個節點原始的相對位置(即保持原始順序)。
限制
* 鏈結串列中的節點數量在範圍 [0, 200] 內。
* -100 <= Node.val <= 100
* -200 <= x <= 200
解題思路
為了解決這個問題,我們可以:
* 創建兩個虛擬節點(
題目描述
題目連結:80. Remove Duplicates from Sorted Array II
給定一個已經排序的整數陣列 nums,請你在原地移除重複出現的元素,使得每個元素最多出現兩次,並返回移除後陣列的新長度。不要使用額外的空間,必須在原地修改輸入陣列並在 O(1) 額外空間條件下完成。
解題思路
我們可以使用雙指標的方法來解決這個問題,遍歷陣列並在原地進行修改。具體思路如下:
1. 初始化指標:使用一個指標 i 來標記新陣列的長度(即下一個要放置元素的位置)。
2. 遍歷陣列:對於陣列中的每一個元素 num:
68. Text Justification
題意
給定一個字串陣列 words,代表每個單字(字串中沒有任何空白),以及一個整數 maxWidth,代表每一行的最大長度。請模擬文字編輯器的自動換行功能,將單字排列成多行文字,滿足以下要求:
* 每行應該放入盡可能多的單字,但總長度不可超過 maxWidth。
* 單字之間至少要有一個空格。
* 單字之間的空格應該盡可能平均分配,若無法平均分配,則左側的空格數應該比右側多。
* 若一行只能放入一個單字,則該行的其餘部分用空格填充。
* 對於最後一行,單字之間只需用一個空格連接,並在行尾填充空格至 maxWidth。
限制
* 1 <= words.length <
題目描述
題目連結:11. Container With Most Water
給定一個整數陣列 height,其中每個元素代表一個點的高度。這些點位於 x 軸上,每個點的 x 座標對應於它們在陣列中的索引。繪製 n 條垂直線,垂直線的兩端分別為 \((i, 0)\) 和 \((i,height[i])\)。
找出兩條垂直線,使得它們與 x 軸一起形成的容器可以容納最多的水。
注意:你不能傾斜容器,且陣列中的每個元素都大於等於