ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে এবং একটি পূর্ণসংখ্যা k আছে, আমাদেরকে সর্বাধিক সম্ভাব্য i খুঁজে বের করতে হবে যেখানে nums[0] + nums[1] + ... + nums[i] ≤ k। কোনো বৈধ আমি বিদ্যমান না থাকলে আমরা -1 ফেরত দেব।
সুতরাং, ইনপুটটি যদি nums =[4, -7, 5, 2, 6], k =5 এর মত হয়, তাহলে আউটপুট হবে 3, সূচকটি 3 হবে যদি আমরা 4+(-7)+5+2 যোগ করি। =4, এটি k এর থেকে কম, যদি আমরা শেষ উপাদানটি যোগ করি তবে এটি k এর থেকে কম হবে না, তাই সূচকটি 3।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- আমি রেঞ্জ 1 থেকে সংখ্যার আকার - 1 এর জন্য, কর
- সংখ্যা[i] :=সংখ্যা[i] + সংখ্যা[i-1]
- সংখ্যা -1 থেকে -1 এর পরিসরের আকারের জন্য, 1 দ্বারা হ্রাস করুন, করুন
- যদি সংখ্যা হয়[i]<=k, তাহলে
- রিটার্ন i
- যদি সংখ্যা হয়[i]<=k, তাহলে
- রিটার্ন -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