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

পাইথনে K প্রিফিক্স (K Prefix) সমস্যা সমাধান


মান লো যাক আমাদের nums নামক একটি সংখ্যার তালিকা এবং একটি ইন্টিজার k আছে, আমাদের সর্বাধিক সম্ভব i বের করতে হবে যাতে nums[0] + nums[1] + ... + nums[i] ≤ k। যদি কোনো বৈধ i না থাকে তবে -1 রিটার্ন করব।

উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [4, -7, 5, 2, 6], k = 5, তবে আউটপুট হবে 3, ইনডেক্স 3 কারণ 4+(-7)+5+2 = 4 যোগ করলে k-র চেয়ে কম, শেষ এলিমেন্ট যোগ করলে আর k-র চেয়ে কম থাকবে না, তাই ইনডেক্স 3।

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

  • i के लिए 1 से nums के आकार - 1 तक की रेंज में, करें
    • nums[i] := nums[i] + nums[i-1]
  • i के लिए nums के आकार -1 से -1 तक, 1 से घटाकर, करें
    • यदि nums[i] <= k, तो
      • i रिटर्न करें
  • -1 रिटर्न करें

বेहतर বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখুন:

উদাহরণ

class Solution:    def solve(self, nums, k):       for i in range(1,len(nums)):          nums[i]+=nums[i-1]          for i in range(len(nums)-1,-1,-1):             if nums[i]<=k:                 return i       return -1 ob = Solution() nums = [4, -7, 5, 2, 6] k = 5 print(ob.solve(nums, k))

ইনপুট

[4, -7, 5, 2, 6], 5

আউটপুট

3

  1. পাইথনে সবচেয়ে বড় সংখ্যা

  2. পাইথনে লংগেস্ট কমন প্রিফিক্স (Longest Common Prefix)

  3. পাইথনে Bisect - অ্যারে বাইсекশন অ্যালগরিদম

  4. পাইথনে সংখ্যাকে স্ট্রিং ফরম্যাট করার পদ্ধতি (format ফাংশন)