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

简介: 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

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


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


目录
相关文章
|
27天前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
18 3
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
65 10
|
1月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
82 4
|
2月前
|
Python
Python 选出列表中特定的元素
Python 选出列表中特定的元素
|
2月前
|
数据处理 索引 Python
Python列表与元素修改的操作技巧
Python列表提供了丰富的方法和技巧来进行高效的数据操作。熟练运用上述技巧,可以大大提高数据处理的效率和代码的可读性。实践中,根据具体需求灵活选择合适的方法,可以在保证代码效率的同时,也使代码更加简洁明了。
53 2
|
27天前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
15 0
|
27天前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
12 0
|
27天前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
9 0
|
3月前
|
存储 数据处理 索引
如何删除 Python 数组中的值?
【8月更文挑战第29天】
133 8
|
6月前
|
存储 索引 Python
leetcode-350:两个数组的交集 II(python中Counter的用法,海象运算符:=)
leetcode-350:两个数组的交集 II(python中Counter的用法,海象运算符:=)
53 0

热门文章

最新文章