問(wèn)題描述
給你一個(gè)非負(fù)整數(shù)數(shù)組 nums 。在一步操作中,你必須:
- 選出一個(gè)正整數(shù)
x,x需要小于或等于nums中最小的非零元素。 -
nums中的每個(gè)正整數(shù)都減去x。
返回使nums中所有元素都等于0需要的最少操作數(shù)。
示例
輸入:nums = [1,5,0,3,5]
輸出:3
解釋?zhuān)?第一步操作:選出 x = 1 ,之后 nums = [0,4,0,2,4] 。
第二步操作:選出 x = 2 ,之后 nums = [0,2,0,0,2] 。
第三步操作:選出 x = 2 ,之后 nums = [0,0,0,0,0] 。
解題思路
找出非0的num有多少種即可。
代碼示例(JAVA)
class Solution {
public int minimumOperations(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
if (num != 0) {
set.add(num);
}
}
return set.size();
}
}
時(shí)間復(fù)雜度:O(n)