给你一个长度为 n 的整数数组 nums。
如果一个整数 k 满足以下条件,则称其为 可排序整数:k 是 n 的 因数,且可以通过依次执行以下操作将 nums 排序为 非递减顺序:
nums 划分为长度为 k 的 连续子数组。返回所有可能的可排序整数 k 的和。
示例 1:
输入: nums = [3,1,2]
输出: 3
解释:
n = 3,可能的因数是 1 和 3。k = 1:每个子数组都只有一个元素。无法通过移动使数组排序。k = 3:单个子数组 [3, 1, 2] 可以通过左移一次得到 [1, 2, 3],从而将数组排序。k = 3 可排序,因此答案是 3。示例 2:
输入: nums = [7,6,5]
输出: 0
解释:
n = 3,可能的因数是 1 和 3。k = 1:每个子数组都只有一个元素。无法通过移动使数组排序。k = 3:单个子数组 [7, 6, 5] 无法通过任何移动排序为非递减顺序。k,因此答案是 0。示例 3:
输入: nums = [5,8]
输出: 3
解释:
n = 2,可能的因数是 1 和 2。[5, 8] 本身已经有序,每个因数都可排序。1 + 2 = 3。
提示:
1 <= n == nums.length <= 1051 <= nums[i] <= 105