• LeeCode-使数组中所有元素都等于零(python)


    给你一个非负整数数组 nums 。在一步操作中,你必须:

    选出一个正整数 x ,x 需要小于或等于 nums 中 最小非零 元素。
    nums 中的每个正整数都减去 x。
    返回使 nums 中所有元素都等于 0 需要的 最少 操作数。

    示例 1:

    输入:nums = [1,5,0,3,5]
    输出:3
    解释:
    第一步操作:选出 x = 1 ,之后 nums = [0,4,0,2,4] 。
    第二步操作:选出 x = 2 ,之后 nums = [0,2,0,0,2] 。
    第三步操作:选出 x = 2 ,之后 nums = [0,0,0,0,0] 。

    示例 2:

    输入:nums = [0]
    输出:0
    解释:nums 中的每个元素都已经是 0 ,所以不需要执行任何操作。
     

    提示:

    1 <= nums.length <= 100
    0 <= nums[i] <= 100

    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/make-array-zero-by-subtracting-equal-amounts
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    1. # -*- coding: utf-8 -*-
    2. # @Time : 2022/7/6 14:51
    3. # @Author : 凌贤文
    4. # @Email : lingxw@zjnu.edu.cn
    5. from typing import List
    6. class Solution:
    7. def minimumOperations(self, nums: List[int]) -> int:
    8. # 返回计数参数count
    9. count = 0
    10. while True:
    11. # 复制数组为x
    12. x = nums.copy()
    13. nums = set(x)
    14. # 移除数组中的0
    15. if 0 in nums:
    16. nums.remove(0)
    17. #
    18. if len(nums) == 0:
    19. break
    20. n = min(nums)
    21. # 数组减去每次最小的;
    22. # 值得学习的步骤;
    23. nums = [i - n for i in nums]
    24. count += 1
    25. return count
    26. if __name__ == '__main__':
    27. sol = Solution()
    28. print(sol.minimumOperations([1, 5, 0, 3, 5]))

  • 相关阅读:
    AndroidStudio案例——简单计算器
    90%的软件测试从业者,努力的方向都错了...你呢?
    zipfile教程
    混合索引(多级索引)
    手写Spring——bean的扫描、加载和实例化
    JS-Vue-属性 表单 事件绑定
    Scala 数据类型
    【计算机网络】子网掩码、子网划分
    kaggle怎么读写文件
    抖音wss弹幕RPC
  • 原文地址:https://blog.csdn.net/lxwssjszsdnr_/article/details/126147654