項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【Leetcode】python – [674] Longest Continuous Increasing Subsequence 個人解法筆記

題目出處

674. Longest Continuous Increasing Subsequence

難度

easy

個人範例程式碼 – 單純走過

class Solution:
    def findLengthOfLCIS(self, nums: List[int]) -> int:
        if not nums:
            return 0

        ans = 0
        cnt = 1
        for i in range(len(nums)):
            if i > 0 and nums[i] > nums[i-1]:
                cnt += 1
            else:
                ans = max(ans, cnt)
                cnt = 1

        ans = max(ans, cnt)
        return ans

最近在練習程式碼本身就可以自解釋的 Coding style,可以嘗試直接閱讀程式碼理解

算法說明

單純走過去,邊走邊看內容,並更新最大。

input handling

如果沒有 nums,回傳 0 (沒數字也不能數)

Boundary conditions

用 for 控制範圍

個人範例程式碼 – stack

class Solution:
    def findLengthOfLCIS(self, nums: List[int]) -> int:
        ans = 0
        stack = []
        for i, num in enumerate(nums):
            if stack:
                if num > stack[-1]:
                    stack.append(num)
                else:
                    ans = max(len(stack), ans)
                    stack = [num]
            else:
                stack = [num]

        ans = max(len(stack), ans)
        return ans

最近在練習程式碼本身就可以自解釋的 Coding style,可以嘗試直接閱讀程式碼理解

算法說明

這題如果用 stack ,其實還能像上面的方法一樣再更簡化,
不過其實 stack 的運用空間已經很小了,其實以結果來講算還可以。

input handling

如果沒有 nums,回傳 0 (沒數字也不能數)

Boundary conditions

用 for 控制範圍

Reference

⭐ Leetcode 解題紀錄 ⭐題型資料結構Python SolutionC++ SolutionNote
⭐BFS 相關題型 ⭐
104Maximum Depth of Binary TreeBFS (分層)Python
94Binary Tree Inorder TraversalBFS (分層)TreePython 內含 處理 Tree 樹問題的重點
102Binary Tree Level Order TraversalBFS (分層)TreePython
103Binary Tree Zigzag Level Order TraversalBFS (分層)TreePython
107Binary Tree Level Order Traversal IIBFS (分層)TreePython
133Clone GraphBFS (分層)GraphPython Graph 的基本操作 #重要題型
127Word LadderBFS (分層), DFSGraphPython
[Lint] 127Topological SortingBFS (拓撲)Python
內有 indegree, outdegree 介紹 #重要題型
207Course ScheduleBFS (拓樸)GraphPython