美文网首页
【教3妹学算法-每日1题】使数组中所有元素都等于零

【教3妹学算法-每日1题】使数组中所有元素都等于零

作者: 程序员小2 | 来源:发表于2022-07-31 11:40 被阅读0次

    插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
    坚持不懈,越努力越幸运,大家一起学习鸭~~~

    3妹

    3妹:2哥,听说武汉某高校有霍乱,霍乱是什么啊?
    2哥:霍乱是因摄入的食物或水受到霍乱弧菌污染而引起的一种急性腹泻性传染病。每年,估计有300万~500万霍乱病例,另有10万~12万人死亡。病发高峰期在夏季,能在数小时内造成腹泻脱水甚至死亡。
    3妹:啊, 这么严重。
    2哥:不要恐慌,目前武汉也只有一例,并且这个病的死亡核概率还是很小的。
    3妹:那怎样避免霍乱呢?
    2哥:普通人,要做到勤洗手,吃熟食, 不吃生的东西,不要去不干净的路边摊吃东西。
    3妹:啊, 我还想去路边吃烧烤呢,看来还是算了吧。
    2哥:3妹就知道吃,还是在家好好学习吧。

    讲课

    题目:

    给你一个非负整数数组 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

    思路:

    这题其实变相是求数组中不为0的不同元素的个数。 利用set统计不同的元素。

    java代码:

    class Solution {
        public int minimumOperations(int[] nums) {
            
            Set<Integer> set = new HashSet<>();
            int count =0;
            for(int i=0;i<nums.length;i++) {
                if(nums[i]!=0 && !set.contains(nums[i])) {
                    set.add(nums[i]);
                    count++;
                }
            }
            return count;
        }
    }
    

    相关文章

      网友评论

          本文标题:【教3妹学算法-每日1题】使数组中所有元素都等于零

          本文链接:https://www.haomeiwen.com/subject/bojkwrtx.html