ধরুন আমাদের কাছে সংখ্যা এবং একটি পূর্ণসংখ্যা 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
-
-
req :=req এর সর্বোচ্চ, d[i]
-
-
req*K <=সংখ্যার আকার
হলে true ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
শ্রেণির সমাধান(অবজেক্ট):def canDivideIntoSubsequences(self, nums, K):d ={} req =0 for i nums:যদি আমি d-এ না থাকি:d[i]=1 else:d[i]+ =1 req =max(req,d[i]) রিটার্ন 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আউটপুট
সত্য