ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা আছে যার দৈর্ঘ্য কমপক্ষে 2। আমাদের তালিকার প্রতিটি শিখরের সূচক খুঁজে বের করতে হবে। তালিকাটি ক্রমবর্ধমান ক্রমে সাজানো হয়েছে। একটি সূচক i একটি সর্বোচ্চ যখন −
-
nums[i]> nums[i + 1] when i =0
-
nums[i]> nums[i - 1] when i =n - 1
-
সংখ্যা[i - 1]
nums[i + 1] অন্য
সুতরাং, যদি ইনপুটটি nums =[5, 6, 7, 6, 9] এর মত হয়, তাহলে আউটপুট হবে [2, 4], কারণ সূচক 2-এর উপাদান হল 7 যা দুটি প্রতিবেশীর চেয়ে বড় এবং আইটেম ইনডেক্স 4 হল 9, এটি তার বাম আইটেম থেকে বড়৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
উত্তর :=একটি নতুন তালিকা
-
n :=সংখ্যার আকার
-
যদি n 1 এর মত হয়, তাহলে
-
উত্তর ফেরত দিন
-
-
প্রতিটি সূচক i এবং সংখ্যার সংখ্যার জন্য, করুন
-
যদি i> 0 এবং i
-
যদি nums[i - 1]
nums[i + 1] হয়, তাহলে -
উত্তরের শেষে i ঢোকান
-
-
যদি আমি 0 এর সমান হয়, তাহলে
-
যদি num> nums[i + 1] হয়, তাহলে
-
উত্তরের শেষে i ঢোকান
-
-
-
যদি আমি n - 1 এর মত হয়, তাহলে
-
যদি num> nums[i - 1] হয়, তাহলে
-
উত্তরের শেষে i ঢোকান
-
-
-
-
-
উত্তর ফেরত দিন
উদাহরণ
আরও ভালোভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি
def solve(nums): ans = [] n = len(nums) if n == 1: return ans for i, num in enumerate(nums): if i > 0 and i < n - 1: if nums[i - 1] < num > nums[i + 1]: ans.append(i) if i == 0: if num > nums[i + 1]: ans.append(i) if i == n - 1: if num > nums[i - 1]: ans.append(i) return ans nums = [5, 6, 7, 6, 9] print(solve(nums))
ইনপুট
[5, 6, 7, 6, 9]
আউটপুট
[2, 4]