ধরুন আমাদের একটি অ্যারে আছে যাকে n এর আকারের সংখ্যা বলা হয় এবং এর একটি মানও আছে। আমরা নিম্নলিখিত প্রশ্নটি n বার করতে চাই −
-
একটি অ-নেতিবাচক মান k <2^m অনুসন্ধান করুন যাতে সংখ্যা এবং k-এ সমস্ত উপাদানের XOR সর্বাধিক করা হয়। সুতরাং k হল ith প্রশ্নের উত্তর।
-
বর্তমান অ্যারে সংখ্যা থেকে শেষ উপাদানটি সরান।
-
আমাদের একটি অ্যারে উত্তর খুঁজে বের করতে হবে, যেখানে উত্তর[i] হল ith প্রশ্নের উত্তর।
সুতরাং, ইনপুট যদি nums =[0,1,1,3], m =2 এর মত হয়, তাহলে আউটপুট হবে [0,3,2,3], কারণ
-
সংখ্যা =[0,1,1,3], k =0 থেকে 0 XOR 1 XOR 1 XOR 3 XOR 0 =3৷
-
সংখ্যা =[0,1,1], k =3 থেকে 0 XOR 1 XOR 1 XOR 3 =3৷
-
সংখ্যা =[0,1], k =2 থেকে 0 XOR 1 XOR 2 =3।
-
সংখ্যা =[0], k =3 থেকে 0 XOR 3 =3।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
x :=2^m - 1
-
আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, করুন
-
nums[i] :=nums[i] XOR x
-
x :=সংখ্যা[i]
-
-
রিভার্সালের পর সংখ্যা ফেরত দিন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums, m): x=2**m-1 for i in range(len(nums)): nums[i]^= x x = nums[i] return(nums[::-1]) nums = [0,1,1,3] m = 2 print(solve(nums, m))
ইনপুট
[0,1,1,3], 2
আউটপুট
[0, 3, 2, 3]