如何使用 C# 從數字陣列中查詢持續增長最長的連續子序列的長度?


LongestIncreaingSubsequence 返回從陣列中獲取連續子序列的整數。該方法有一個 for 迴圈,它會迭代並跟蹤這些數字。最終結果將有計算出的最大值。時間複雜度為 O(N),因為每個元素都會被訪問一次,空間複雜度為 O(1),因為我們沒有使用任何儲存空間。

時間複雜度 − O(N)

空間複雜度 − O(1)

示例   − {2,4,6,5,8}

輸出 − 3

示例

public class Arrays{
   public int longestIncreaingSubsequence(int[] nums){
      if (nums == null || nums.Length == 0){
         return -1;
      }
      int res = 0, count = 0;
      for (int i = 0; i < nums.Count(); i++){
         if (i == 0 || nums[i] > nums[i - 1]){
            count++;
            res = Math.Max(res, count);
         }
         else{
            count = 1;
         }
      }
      return res;
   }
}

static void Main(string[] args){
   int[] nums = { 1, 3, 5, 4, 7 };
   Console.WriteLine(s.longestIncreaingSubsequence(nums));
}

輸出

3

更新於: 17-8-2021

776 瀏覽

Kickstart 職業

完成課程並獲得認證

開始
廣告
© . All rights reserved.