程序以查找Python中最小组的最大可能值

假设我们有一个称为nums的数字列表,另一个值为k。我们必须将列表分成k个连续的组。最小的组是所有组中总和最小的组。因此,找到最小组的最大可能值。

因此,如果输入像nums = [2,6,4,5,8] k = 3,那么输出将是8,因为我们可以将列表分为三类:[2,6],[4 ,5],[8]。因此,最小组的总和为8。

范例(Python)

让我们看下面的实现以更好地理解-

class Solution:

   def solve(self, nums, k):

      def is_divisible(target):

         if target <= 1:

            return True

         num_chunks = 0

         current_sum = 0

         for x in nums:

            current_sum += x

            if current_sum >= target:

               current_sum = 0

               num_chunks += 1

               if num_chunks == k:

                  return True

         return False

      left = 1

      right = sum(nums) // k + 1

      while left < right - 1:

         mid = (left + right) // 2

         if is_divisible(mid):

            left = mid

         else:

            right = mid

      return left

ob = Solution()nums = [2, 6, 4, 5, 8]

k = 3

print(ob.solve(nums, k))

输入值

[2, 6, 4, 5, 8], 3
输出结果
8

以上是 程序以查找Python中最小组的最大可能值 的全部内容, 来源链接: utcz.com/z/330722.html

回到顶部