ধরুন আমাদের দুটি অ্যারে আছে nums1 এবং nums2 এবং আরেকটি মান k। নিম্নলিখিত উপায়ে nums1 থেকে যেকোনো একটি উপাদান পরিবর্তন করে উভয় অ্যারেকে সমান করা যায় কিনা তা আমাদের পরীক্ষা করতে হবে (শুধুমাত্র একবার):আমরা পরিসীমা [-k, k] থেকে সংখ্যা 1-এর যেকোনো উপাদানে যেকোনো মান যোগ করতে পারি।পি>
সুতরাং, যদি ইনপুটটি nums1 =[5,7,11] nums2 =[5,5,11] k =8 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা -2 (পরিসরে [-8,8] যোগ করতে পারি। ) nums1[1] দিয়ে এটিকে 5 করতে হলে এটি nums2 এর মতই হবে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- তালিকা nums1 এবং nums2 সাজান
- temp :=মিথ্যা
- idx :=-1
- আমি 0 থেকে nums1 - 1 এর পরিসরের জন্য, কর
- যদি nums1[i] nums2[i] এর মত না হয়, তাহলে
- যদি temp সত্য হয়, তাহলে
- মিথ্যে ফেরত দিন
- temp :=সত্য
- idx :=i
- যদি temp সত্য হয়, তাহলে
- যদি nums1[i] nums2[i] এর মত না হয়, তাহলে
- যদি idx হয় -1 বা |nums1[idx]-nums2[idx]| <=k, তারপর
- সত্য ফেরান
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def solve(nums1, nums2, k): nums1.sort() nums2.sort() temp = False idx = -1 for i in range(len(nums1)): if nums1[i] != nums2[i]: if temp: return False temp = True idx = i if idx == -1 or abs(nums1[idx]-nums2[idx]) <= k: return True return False nums1 = [5,7,11] nums2 = [5,5,11] k = 8 print(solve(nums1, nums2, k))
ইনপুট
[5,7,11], [5,5,11], 8
আউটপুট
True