Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để tìm độ dài của dãy con tăng dần liên tục dài nhất từ ​​một mảng số bằng cách sử dụng C #?


LongestIncreaingSubsequence trả về số nguyên của dãy con liên tục từ mảng. Phương thức này có một vòng lặp for, lặp lại và theo dõi các số. kết quả cuối cùng sẽ có giá trị Max được tính. Độ phức tạp về thời gian là O (N) vì mọi phần tử được truy cập một lần và độ phức tạp về không gian là O (1) vì chúng tôi không sử dụng bất kỳ không gian lưu trữ nào.

Độ phức tạp về thời gian - O (N)

Độ phức tạp của không gian - O (1)

Ví dụ - {2,4,6,5,8}

Đầu ra - 3

Ví dụ

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));
}

Đầu ra

3