XOR всех элементов массива, которые являются идеальными квадратами
Дан массив arr[] , содержащий N целых чисел, задача состоит в том, чтобы найти XOR всех элементов этого массива, которые являются идеальными квадратами.
Примеры:
Input: arr[] = {3, 9, 16, 12, 13, 15}
Output: 25
Explanation: Only 9, 16 are the perfect squares in the given array.
So the XOR of 9 and 16 is 25, XOR = 9 ^ 16 = 25Input: arr[] = { 3, 9, 12, 13, 15 }
Output: 9
Explanation: Only 9 is the perfect square so the answer will be 9.
Подход: Чтобы решить проблему, следуйте следующей идее:
In order to find the XOR of perfect square elements in the array, simply iterate through the array and find if an element is a perfect square or not, and then calculate the XOR using.
Выполните следующие шаги, чтобы вычислить ответ:
- Объявите переменную (например, xor_arr ) для хранения ответа и инициализируйте ее значением 0.
- Итерация с начала массива:
- Для каждого элемента в массиве проверьте, является ли он идеальным квадратом или нет.
- Простой способ проверить, если ceil и floor квадратного корня элемента равны, то число является идеальным квадратом.
- Найдите XOR идеального квадратного элемента и сохраните его в переменной результата с помощью оператора '^'.
- Для каждого элемента в массиве проверьте, является ли он идеальным квадратом или нет.
- Возвратите переменную xor_arr , которая хранит XOR всех элементов идеального квадрата в массиве.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N)
Вспомогательное пространство: O(1)