Back to Home

ស្វ័យលំដាប់កើនឡើងវែងបំផុត

បញ្ហា dynamic programming ដើម្បីរកប្រវែងនៃស្វ័យលំដាប់វែងបំផុតនៃស្វ័យលំដាប់ដែលបានផ្តល់ឱ្យដែលធាតុទាំងអស់នៃស្វ័យលំដាប់ត្រូវបានតម្រៀបតាមលំដាប់កើនឡើង។

Visualization

Step 1 / 10
Speed:

Details

Analogy

ស្រមៃជួរមនុស្សដែលមានកម្ពស់ផ្សេងៗគ្នា។ អ្នកចង់ជ្រើសរើសក្រុមតូចមួយនៃមនុស្សពីជួរនេះ ដោយរក្សាពួកគេក្នុងលំដាប់ដើមរបស់ពួកគេ ដូច្នេះពួកគេត្រូវបានរៀបចំពីខ្លីបំផុតទៅខ្ពស់បំផុត។ គោលដៅគឺរកក្រុមធំបំផុតដែលអ្នកអាចបង្កើតបែបនេះ។

Purpose

ដើម្បីរកស្វ័យលំដាប់វែងបំផុតដែលធាតុស្ថិតក្នុងលំដាប់កើនឡើងយ៉ាងតឹងរឹង។ ធាតុមិនចាំបាច់ជាប់គ្នាទេ។

Use Cases

ប្រើក្នុងការវិភាគទិន្នន័យ ជីវព័ត៌មានវិទ្យា (ការវិភាគស្វ័យលំដាប់ហ្សែន) និងក្បួនដោះស្រាយផ្គូផ្គងខ្សែអក្សរ។

Algorithm Steps

Line 1
1
create dp array of size n, fill with 1
2
for i = 1 to n-1:
3
for j = 0 to i-1:
4
if arr[i] > arr[j]:
5
dp[i] = max(dp[i], dp[j] + 1)
6
return max(dp)
Current
Executed
Pending

Explanation

What's Happening?

Step 1/10

អារេដំបូង។ យើងនឹងសាងសង់អារេ DP ដែលតំណាងឱ្យប្រវែងនៃ LIS ដែលបញ្ចប់នៅលិបិក្រមនីមួយៗ។

Updates with each step • Clickfor full view

Code Implementation

def length_of_lis(nums):
    if not nums:
        return 0
    dp = [1] * len(nums)
    for i in range(1, len(nums)):
        for j in range(i):
            if nums[i] > nums[j]:
                dp[i] = max(dp[i], dp[j] + 1)
    return max(dp)
ស្វ័យលំដាប់កើនឡើងវែងបំផុត - Interactive Visualization | AlgoViz | AlgoViz