You are given an integer array nums of length n.
An integer k is called sortable if k divides n and you can sort nums in non-decreasing order by sequentially performing the following operations:
nums into consecutive subarrays of length k.Return an integer denoting the sum of all possible sortable integers k.
Example 1:
Input: nums = [3,1,2]
Output: 3
Explanation:
n = 3, possible divisors are 1 and 3.k = 1: each subarray has one element. No rotation can sort the array.k = 3: the single subarray [3, 1, 2] can be rotated once to produce [1, 2, 3], which is sorted.k = 3 is sortable. Hence, the answer is 3.Example 2:
Input: nums = [7,6,5]
Output: 0
Explanation:
n = 3, possible divisors are 1 and 3.k = 1: each subarray has one element. No rotation can sort the array.k = 3: the single subarray [7, 6, 5] cannot be rotated into non-decreasing order.k is sortable. Hence, the answer is 0.Example 3:
Input: nums = [5,8]
Output: 3
Explanation:
n = 2, possible divisors are 1 and 2.[5, 8] is already sorted, every divisor is sortable. Hence, the answer is 1 + 2 = 3.Constraints:
1 <= n == nums.length <= 1051 <= nums[i] <= 105k must divide n, since the array is partitioned into subarrays of length k. Iterate over all divisors of n.s be the sorted version of the array. For each divisor k, check every block [i, i+k).s[i..i+k-1] appears as a cyclic rotation of nums[i..i+k-1].k is sortable.[3,1,2]
[7,6,5]
[5,8]