题解
如题所示,允许暴力,虽然是暴力,但复杂度也就O(n)
还是如昨天的题目一样,使用Set.add的方法去判断即可
分三种情况
因为是set集合的原因,所以可以排除值相同的原因
当遍历数组有值小于k就return -1
当遍历数组遇见等于k的值,使得ans–
当正常遍历数组的值时,使得ans++
class Solution {
public int minOperations(int[] nums, int k) {
int n = nums.length;
HashSet<Integer> set = new HashSet<>();
int ans = 0;
for(int i=0;i<n;i++){
if(nums[i]<k) return -1;
if(set.add(nums[i])){
System.out.println("nums[i]:"+nums[i]+",ans:"+ans);
if(nums[i]==k) ans--;
ans++;
}
}
return ans;
}
}