মান লো যাক আমাদের 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 रिटर्न करें
- यदि nums[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