मान लीजिए कि हमारे पास धनात्मक पूर्णांकों की एक गैर-घटती सरणी है जिसे अंक और एक पूर्णांक K कहा जाता है, हमें यह पता लगाना होगा कि क्या इस सरणी को कम से कम K की लंबाई के एक या अधिक असंबद्ध बढ़ते क्रमों में विभाजित किया जा सकता है।
इसलिए, यदि इनपुट nums =[1,2,2,3,3,4,4], K =3 जैसा है, तो आउटपुट सही होगा, क्योंकि इस सरणी को [1,] जैसे दो बाद में विभाजित किया जा सकता है। 2,3,4] और [2,3,4] जिनकी लंबाई कम से कम 3 प्रत्येक है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
d :=एक नया नक्शा
-
अनुरोध :=0
-
प्रत्येक i के लिए अंकों में करें
-
अगर मैं d में नहीं हूं तो गैर-शून्य है, तो
-
d[i]:=1
-
-
अन्यथा,
-
d[i] :=d[i] + 1
-
-
अनुरोध :=अधिकतम अनुरोध, d[i]
-
-
जब रिक*के <=अंकों का आकार
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution(object): def canDivideIntoSubsequences(self, nums, K): d = {} req = 0 for i in nums: if i not in d: d[i]=1 else: d[i]+=1 req = max(req,d[i]) return req*K<=len(nums) ob = Solution() print(ob.canDivideIntoSubsequences([1,2,2,3,3,4,4],3))
इनपुट
[1,2,2,3,3,4,4]. 3
आउटपुट
True