2023-05-29:给你一个由 n 个正整数组成的数组 nums你可以对数组的任意元素执行任意次数的两类操作如果元素是 偶数 ,除以 2例如,如果数组是 1,2,3,4那么你可以对最后一个元素执行此操作使其变成...1,2,3,2如果元素是 奇数 ,乘上 2例如,如果数组是 1,2,3,4 ,那么你可以对第一个元素执行此操作,使其变成 2,2,3,4数组的 偏移量 是数组中任意两个元素之间的 最大差值。...对于堆中的每个元素,如果它是奇数,则将其乘以 2 并插入堆中;否则,将其直接插入堆中。3.初始化变量 res 为堆中最大元素与最小元素之差。...4.在一个 while 循环中,只要当前解仍可减小且堆中最大元素为偶数,就执行以下操作:从堆中取出最大值 curMax。将 curMax 除以 2 并插入堆中。计算当前解并更新 res。...这样,我们就需要执行 2n 次操作。由于堆的插入和删除操作都需要 O(logn) 的时间,因此算法的总时间复杂度为 O(nlogn)。该算法的空间复杂度为 O(n),其中 n 是数组的长度。