সমস্যা বিবরণ
একটি সর্টেড (অসেন্ডিং) পজিটিভ সংখ্যার অ্যারে দেওয়া আছে। যেটি কোনো সাবসেটের যোগফল হিসেবে প্রকাশ করা যাবে না এমন ন্যূনতম পজিটিভ মান বের করতে হবে। সময় জটিলতা O(n)।
উদাহরণস্বরূপ, A=[1,4,8,12,13,17] হলে আউটপুট 2।
সমাধানের ধাপসমূহ
answer = 1শুরু করুন।- প্রতিটি উপাদান
A[i]এর জন্য:- যদি
A[i] <= answerহয়, তবেanswer += A[i]। - অন্যথায় লুপ ব্রেক করুন।
- যদি
answerরিটার্ন করুন।
পাইথন কোড উদাহরণ
def get_smallest_element(A):
n = len(A)
answer = 1
for i in range(n):
if A[i] <= answer:
answer += A[i]
else:
break
return answer
A = [1, 4, 8, 12, 13, 17]
print(get_smallest_element(A)) # আউটপুট: 2
ইনপুট
[1, 4, 8, 12, 13, 17]
আউটপুট
2