কম্পিউটার

পাইথনে অ্যারেকে ক্রমবর্ধমান সিকোয়েন্সে ভাগ করুন


ধরুন আমাদের কাছে সংখ্যা এবং একটি পূর্ণসংখ্যা 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

আউটপুট

সত্য

  1. পাইথনে অ্যারে পার্টিশন I

  2. পাইথনে অ্যারে ঘোরান

  3. পাইথনে সাজানো অ্যারে মার্জ করুন

  4. পাইথনের সাথে একটি তালিকা বা অ্যারেতে পাঠ্য ফাইল কীভাবে পড়তে হয়?