You are given two integer arrays, nums1 and nums2, of the same length.
An index i is considered matching if nums1[i] == nums2[i].
Return the maximum number of matching indices after performing any number of right shifts on nums1.
A right shift is defined as shifting the element at index i to index (i + 1) % n, for all indices.
Example 1:
Input: nums1 = [3,1,2,3,1,2], nums2 = [1,2,3,1,2,3]
Output: 6
Explanation:
If we right shift nums1 2 times, it becomes [1, 2, 3, 1, 2, 3]. Every index matches, so the output is 6.
Example 2:
Input: nums1 = [1,4,2,5,3,1], nums2 = [2,3,1,2,4,6]
Output: 3
Explanation:
If we right shift nums1 3 times, it becomes [5, 3, 1, 1, 4, 2]. Indices 1, 2, and 4 match, so the output is 3.
Constraints:
nums1.length == nums2.length1 <= nums1.length, nums2.length <= 30001 <= nums1[i], nums2[i] <= 109We can enumerate the number of right shifts k, where 0 leq k < n. For each k, we can calculate the number of matching indices between the array nums1 after right shifting k times and nums2. The maximum value is taken as the answer.
The time complexity is O(n^2), where n is the length of the array nums1. The space complexity is O(1).
Java
C++
Go
TypeScript
Practice Maximum Number of Matching Indices After Right Shifts with our built-in code editor and test cases.
Practice on FleetCodePractice this problem
Open in Editor