मान लीजिए कि हमारे पास धनात्मक पूर्णांकों की एक गैर-घटती सरणी है जिसे अंक और एक पूर्णांक 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