iT邦幫忙

2019鐵人賽相關文章
共有 9257 則文章
鐵人賽 Kotlin DAY 30

技術 LeetCode 1143. Longest Common Subsequence

動態規劃 (DP) 解題思路 最長共同子序列問題是典型的二維動態規劃問題。例如,給定兩個字串 text1 = "abcde" 和 text...

鐵人賽 Kotlin DAY 29

技術 LeetCode 146. LRU Cache

破題 這題目要求我們實作一種叫做 LRU 的 cache 機制,它可以快速地存取和更新資料。 為了實作這種機制,我們需要用到兩種資料結構:一個是 hash...

鐵人賽 Kotlin DAY 27

技術 LeetCode 236. Lowest Common Ancestor of a Binary Tree

遞迴 解題思路 我們要找的最低公共祖先是一個節點,它同時是 p 和 q 的祖先,而且它的深度要盡量大。 我們用一個函數 來表示節點 的子樹中是否包含 p...

鐵人賽 Kotlin DAY 25

技術 LeetCode 210. Course Schedule II

破題 本題要求找出一種課程學習順序,使得每一門課程都在它的先修課程之後學習。這可以用一種叫做「拓撲排序」的方法來解決。 有向圖是一種由節點和箭頭組成的圖,箭...

鐵人賽 Kotlin DAY 28

技術 LeetCode 2108. Find First Palindromic String in the Array

破題 這個題目要在一個字串陣列中找到第一個迴文字串。迴文是指一個字串正向和反向讀都是一樣的,例如 madam。 跟一流的人才幹大事,享受成功進步的高級樂趣!...

鐵人賽 Kotlin DAY 26

技術 LeetCode 125. Valid Palindrome

破題 本題的目的是檢查一個字串是否為迴文。迴文是指一個字串從前往後讀和從後往前讀是相同的。 跟一流的人才幹大事,享受成功進步的高級樂趣!內推機會來啦!能與優...

鐵人賽 Kotlin DAY 24

技術 LeetCode 9. Palindrome Number

破題 這題要求我們判斷一個整數是否是迴文,換言之,它從前往後讀和從後往前讀是相同的。 跟一流的人才幹大事,享受成功進步的高級樂趣!內推機會來啦!能與優秀的程...

鐵人賽 Kotlin DAY 23

技術 LeetCode 699. Falling Squares

破題 這題要求我們模擬一系列的方塊從天空掉落到一維的數線上,並且回傳每次掉落後最高的高度。 跟一流的人才幹大事,享受成功進步的高級樂趣!內推機會來啦!能與優...

鐵人賽 Kotlin DAY 22

技術 LeetCode 218. The Skyline Problem

破題 這題是一個經典的幾何問題。給定一個建築物列表,每個建築物由其左邊界、右邊界和高度表示,我們需要找出這些建築物形成的天際線。天際線是由水平線段組成的,這些...

鐵人賽 Kotlin DAY 21

技術 LeetCode 1943. Describe the Painting

破題 這個演算法的目的是將一幅畫作分割成多個區段,每個區段都有自己的顏色。畫作由多個區段組成,每個區段都有一個起始點、結束點和顏色。如果兩個區段重疊,那麼重疊...

鐵人賽 Kotlin DAY 20

技術 LeetCode 67. Add Binary

暴力法 首先,我們考慮一種最基本的方法:將 a 和 b 轉換為十進制數,然後求和,最後再將結果轉換為二進制數。 class Solution { fu...

鐵人賽 Kotlin DAY 19

技術 LeetCode 127. Word Ladder

廣度優先搜尋 (BFS) 破題 這個問題要找出最短的轉換序列長度,當我們看到「最短」時,我們可以想到使用「廣度優先搜尋」來解決。但是,這個問題並沒有直接我們圖...

鐵人賽 Kotlin DAY 18

技術 LeetCode 848. Shifting Letters

破題 這題的目標是將一個字串中的每個字母都向後移動一定的位數。移動的位數由一個整數陣列指定,該陣列的長度與字串的長度相同。例如,如果我們有一個字串 abc 和...

鐵人賽 Kotlin DAY 17

技術 LeetCode 1844. Replace All Digits with Characters

破題 這題的目標是將一個字串中的數字替換為字母。這個字串中的每個偶數 index 位置都是一個小寫字母,而每個奇數 index 位置都是一個介於 0 到 9...

鐵人賽 Kotlin DAY 16

技術 LeetCode 1569. Number of Ways to Reorder Array to get Same BST

動態規劃和組合數 預備知識 組合數是從 個物品中選出 個的不同方法數。我們用 或 來表示它。它的計算公式是: 這裡 表示 的階乘,也就是 。...

鐵人賽 Kotlin DAY 15

技術 LeetCode 215. Kth Largest Element in an Array

破題 假設:陣列的長度為 。 題意:這題是希望我們找出一個整數陣列中第 大的數字。 方法一:計數排序 (Counting Sort) 解題思路 首先,...

鐵人賽 Kotlin DAY 14

技術 LeetCode 567. Permutation in String

滑動窗口 (Sliding Window) 解題思路 首先,我們需要理解一個基本概念:如果一個字串是另一個字串的排列,那麼這兩個字串中每個字元出現的次數必須完...

鐵人賽 Kotlin DAY 13

技術 LeetCode 88. Merge Sorted Array

雙指標法 解題思路 初始化兩個指標:我們為兩個陣列 nums1 和 nums2 分別宣告一個指標,分別命名為 i 和 j。這兩個指標都會從各自陣列的起始位置...

鐵人賽 Kotlin DAY 12

技術 LeetCode 437. Path Sum III

深度優先搜尋 (DFS) 解題思路 節點訪問:我們會訪問每一個節點,並以該節點作為起始點。 路徑探索:對於每一個起始節點,我們會探索所有向下延伸的路徑。...

鐵人賽 Kotlin DAY 11

技術 LeetCode 572. Subtree of Another Tree

深度優先搜尋 (DFS) 解題思路 初始化:首先,我們使用深度優先搜尋(DFS)來遍歷 s 中的每一個節點。 子樹比較:對於 s 中的每一個節點,我們需...

鐵人賽 Kotlin DAY 10

技術 LeetCode 102. Binary Tree Level Order Traversal

廣度優先搜尋 (BFS) 解題思路 我們可以使用廣度優先搜尋來解決這個問題。最簡單的方法是使用一個 Pair (node, level) 來表示狀態,其中 n...

鐵人賽 Kotlin DAY 9

技術 LeetCode 108. Convert Sorted Array to Binary Search Tree

破題 首先,我們知道二元搜尋樹的一個重要特性是其中序走訪結果為遞增序列。因此,如果我們得到一個遞增陣列,我們可以確定這個陣列可以作為某個二元搜尋樹的中序走訪結...

鐵人賽 Kotlin DAY 8

技術 LeetCode 98. Validate Binary Search Tree

遞迴 解題思路 這道題目要求我們判斷一棵二元樹是否是二元搜尋樹。 二元搜尋樹的特性是,對於任意一個節點,它的左子樹上所有節點的值都小於它,而它的右子樹上所有節...

鐵人賽 Kotlin DAY 7

技術 LeetCode 110. Balanced Binary Tree

破題 這道題目中的平衡二元樹定義為:二元樹中每個節點的左右子樹高度差的絕對值不超過1。根據定義,一棵二元樹是平衡二元樹,當且僅當其所有子樹也都是平衡二元樹。因...

鐵人賽 Kotlin DAY 6

技術 LeetCode 1971. Find if Path Exists in Graph

破題 這道題目要求我們判斷是否存在從起點到終點的有效路徑。這可以轉化為求圖中兩個頂點是否連通的問題。我們可以使用廣度優先搜尋 (BFS)、深度優先搜尋 (DF...

鐵人賽 Kotlin DAY 4

技術 LeetCode 232. Implement Queue using Stacks

雙堆疊 解題思路 我們使用兩個 stack 來模擬一個 queue 的操作。 一個 stack 叫做 input stack,用來存放新加入的資料。另一個 s...

鐵人賽 Kotlin DAY 2

技術 LeetCode 234. Palindrome Linked List

複製到陣列後使用雙指標法 解題思路 有兩種常見的 List 實作方式,分別是 ArrayList 和 LinkedList。它們在存儲值的方法上有什麼區別呢?...

鐵人賽 Kotlin DAY 5

技術 LeetCode 2. Add Two Numbers

模擬加法 解題思路 兩個鏈結串列的數字是從個位開始存儲的,所以我們可以直接按位相加。 我們同時遍歷兩個鏈結串列,把每一位的數字和進位值相加,得到當前位數的和。...

鐵人賽 Kotlin DAY 1

技術 LeetCode 509. Fibonacci Number

動態規劃 (DP) 解題思路 費波那契數列的定義是 ,,並且 對於任意 成立。 這個遞迴關係可以用動態規劃來實現,只需要記錄 和 作為初始值,然後不斷...

鐵人賽 Kotlin DAY 3

技術 LeetCode 1. Two Sum

暴力窮舉 解題思路 一個直覺的想法是,對陣列中的每個數字 x,檢查是否有另一個數字等於 target - x。 為了避免重複配對,我們只需在陣列中,位於 x...