কম্পিউটার টিউটোরিয়াল

Python-এ অ্যারে সাজানোর জন্য সর্বোচ্চ চাংক বের করার প্রোগ্রাম


মনে করুন nums নামে একটি অ্যারে আছে, আমাদের অ্যারেটিকে কিছু পার্টিশনে ভাগ করতে হবে, এবং প্রতিটিইندিভিজুয়ালি সর্ট করতে হবে। এখন তাদের কনক্যাটেনেট করার পর আমরা একটি সর্টেড অ্যারে পাব। আমাদের সর্বোচ্চ কতগুলো পার্টিশন বানাতে পারি তা বের করতে হবে।

সুতরাং, যদি ইনপুট হয় [3,2,4,5,5], তবে আউটপুট হবে 4, কারণ আমরা পার্টিশন বানাতে পারি [3,2], [4], [5], [5]।

এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব −

  • real := nums তালিকাটি সর্ট করুন

  • p1 := 0, p2 := 1, c := 0

  • অনন্ত লুপে নিচের কাজ করুন

    • flag := True

    • tmp := nums[p1 থেকে p2-1] সাবলিস্ট সর্ট করুন

    • j = 0 থেকে tmp-এর আকার পর্যন্ত জন্য, করুন

      • যদি tmp[j] != real[p1+j] হয়, তবে

        • flag := False

        • p2 := p2 + 1

        • লুপ থেকে বের হোন

      • যদি flag true হয়, তবে

        • p1 := p2

        • p2 := p2+1

        • c := c + 1

      • যদি p1 == nums-এর আকার বা p2 > nums-এর আকার হয়, তবে

        • c রিটার্ন করুন

    উদাহরণ

    বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন

    def solve(nums):
        real = sorted(nums)
        p1, p2, c = 0, 1, 0
        while True:
            flag = True
            tmp = sorted(nums[p1:p2])
            for j in range(len(tmp)):
                if tmp[j] != real[p1+j]:
                    flag = False
                    p2 += 1
                    break
            if flag:
                p1, p2 = p2, p2+1
                c += 1
            if p1 == len(nums) or p2 > len(nums):
                return c
    
    nums = [3,2,4,5,5]
    print(solve(nums))

    ইনপুট

    {3,2,4,5,5}

    আউটপুট

    4

  1. পাইথনে ইউনিক অ্যারেতে কনটিগুয়াস ইন্টারভাল খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথনে অ্যারের যোগফল বের করা

  4. পাইথনে অ্যারে থেকে সর্বোচ্চ এলিমেন্ট বের করা