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

পাইথনে অ্যারে রিয়ারেঞ্জ করে কনsekutিভ ডিফারেন্স সমান করা সম্ভব কিনা চেক করার প্রোগ্রাম

একটি লিস্ট nums দেওয়া আছে। কি এটি রিয়ারেঞ্জ করা যায় যাতে সব কনsekutিভ পেয়ারের ডিফারেন্স একই হয় (অর্থাৎ আর্থমেটিক প্রোগ্রেশন বানানো যায়)।

উদাহরণ

nums = [8, 2, 6, 4] → আউটপুট: True

সর্টেড: [2, 4, 6, 8] — ডিফারেন্স ২।

এলগরিদম (O(n log n))

  1. যদি len(nums) <= 2: True
  2. nums.sort()
  3. targetDiff := nums[1] - nums[0]
  4. for i in 2..len(nums)-1:
    • যদি nums[i] - nums[i-1] != targetDiff: False
  5. True রিটার্ন করুন।

পাইথন কোড

def solve(nums):
    N = len(nums)
    if N <= 2:
        return True
    nums.sort()
    targetDiff = nums[1] - nums[0]
    for i in range(2, N):
        if nums[i] - nums[i-1] != targetDiff:
            return False
    return True

nums = [8, 2, 6, 4]
print(solve(nums))  # আউটপুট: True

ইনপুট / আউটপুট

[8, 2, 6, 4]
True
  1. পাইথনে চারটি ইউনিক এলিমেন্ট যাদের যোগফল ঠিক k (4Sum Exact)

  2. পাইথনে দুটি লিস্ট থেকে ন্যূনতম পার্থক্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে দেওয়া অপারেশন দিয়ে সব উপাদান সমান করার ন্যূনতম অপারেশন সংখ্যা খুঁজে বের করার প্রোগ্রাম

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