From 4a0f2f393f174706fc16a9562bb4bcc177e8dd7a Mon Sep 17 00:00:00 2001 From: Tharani-Vadde <66458631+Tharani-Vadde@users.noreply.github.com> Date: Thu, 15 Oct 2020 21:21:53 +0530 Subject: [PATCH 1/2] Added Number_of_LongestIncreasingSubsquence --- ...umber_of_Longest_Increasing_Subsequence.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 LeetCode/0673_Number_of_Longest_Increasing_Subsequence.py diff --git a/LeetCode/0673_Number_of_Longest_Increasing_Subsequence.py b/LeetCode/0673_Number_of_Longest_Increasing_Subsequence.py new file mode 100644 index 0000000..804c131 --- /dev/null +++ b/LeetCode/0673_Number_of_Longest_Increasing_Subsequence.py @@ -0,0 +1,30 @@ +''' +Given an unsorted array of integers, find the number of longest increasing subsequence. +Example 1: +Input: [1,3,5,4,7] +Output: 2 +Explanation: The two longest increasing subsequence are [1, 3, 4, 7] and [1, 3, 5, 7]. +Example 2: +Input: [2,2,2,2,2] +Output: 5 +Explanation: The length of longest continuous increasing subsequence is 1, and there are 5 subsequences' length is 1, so output 5. +Note: Length of the given array will be not exceed 2000 and the answer is guaranteed to be fit in 32-bit signed int. +''' + +class Solution(object): + def findNumberOfLIS(self, nums): + length = [1]*len(nums) + count = [1]*len(nums) + result = 0 + for end, num in enumerate(nums): + for start in range(end): + if num > nums[start]: + if length[start] >= length[end]: + length[end] = 1+length[start] + count[end] = count[start] + elif length[start] + 1 == length[end]: + count[end] += count[start] + for index, max_subs in enumerate(count): + if length[index] == max(length): + result += max_subs + return result From ae8745e37958b05de07f94ddf5cd761cab29a3f7 Mon Sep 17 00:00:00 2001 From: Tharani Vadde Date: Wed, 30 Dec 2020 23:57:37 +0530 Subject: [PATCH 2/2] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 46f4b1a..5a1188a 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ ### All algorithms implemented in Python 3 (for education) -There implementations are for learning purposes. If you want to contribute more efficient solutions feel free to open an issue and commit your solution. +There implementations are for learning purposes. If you want to contribute efficient solutions feel free to open an issue and commit your solution. ## Inspiration