তিনটি পজিটিভ সংখ্যা n, lower, upper দেওয়া আছে। দৈর্ঘ্য n একটি লিস্ট বানাতে হবে যা স্ট্রিক্টলি ইনক্রিজিং তারপর স্ট্রিক্টলি ডিক্রিজিং, সব সংখ্যা [lower, upper] রেঞ্জে, এবং উভয় অংশ নন-খালি। লেক্সিকোগ্রাফিক্যালি সর্বোচ্চ এমন লিস্ট রিটার্ন করুন।
উদাহরণ
n = 5, lower = 3, upper = 7 → আউটপুট: [6, 7, 6, 5, 4]
[7, 6, 5, 4, 3] অবৈধ কারণ ইনক্রিজিং অংশ খালি।
এলগরিদম
- যদি
n > 2*(upper-lower)+1: খালি লিস্ট রিটার্ন করুন। c := upper - lower, d := 1- যদি
c < n:d := n - c - 1 - যদি
d == 0:d := 1 f := range(upper-d, upper),g := range(upper, upper-n+d, -1)f + gরিটার্ন করুন।
পাইথন কোড
def solve(n, lower, upper):
if n > 2 * (upper - lower) + 1:
return []
c = upper - lower
d = 1
if c < n:
d = n - c - 1
if d == 0:
d = 1
f = list(range(upper - d, upper))
g = list(range(upper, upper - n + d, -1))
return f + g
n = 5
lower = 3
upper = 7
print(solve(n, lower, upper)) # আউটপুট: [6, 7, 6, 5, 4]
ইনপুট / আউটপুট
5, 3, 7 [6, 7, 6, 5, 4]