ধরুন আমাদের কাছে সংখ্যার একটি অ্যারে আছে যাকে nums বলা হয়। আমাদের পরীক্ষা করতে হবে এতে সংলগ্ন মান আছে কি না।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[6, 8, 3, 5, 4, 7], তাহলে আউটপুটটি সত্য হবে কারণ উপাদানগুলি 3, 4, 5, 6, 7, 8।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি সংখ্যার আকার <1, তারপর
- মিথ্যে ফেরত দিন
- min_val :=ন্যূনতম সংখ্যা, max_val :=সর্বাধিক সংখ্যা
- যদি (max_val - min_val + 1) সংখ্যার আকারের সমান হয়, তাহলে
- আমি 0 থেকে সংখ্যার আকারের মধ্যে,
- করুন
- যদি nums[i] <0, তারপর
- j:=-সংখ্যা[i] - min_val
- অন্যথায়,
- j :=সংখ্যা[i] - min_val
- যদি সংখ্যা[j]> 0 হয়, তাহলে
- সংখ্যা[j] :=-সংখ্যা[j]
- অন্যথায়,
- মিথ্যে ফেরত দিন
- যদি nums[i] <0, তারপর
- সত্য ফেরান
- আমি 0 থেকে সংখ্যার আকারের মধ্যে,
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def solve(nums): if len(nums) < 1: return False min_val = min(nums) max_val = max(nums) if max_val - min_val + 1 == len(nums): for i in range(len(nums)): if nums[i] < 0: j = -nums[i] - min_val else: j = nums[i] - min_val if nums[j] > 0: nums[j] = -nums[j] else: return False return True return False nums = [6, 8, 3, 5, 4, 7] print(solve(nums))
ইনপুট
[6, 8, 3, 5, 4, 7]
আউটপুট
True