最专业企业营销型网站建设,企业宣传海报设计制作,想做一个能上传视频的网站怎么做,贵州建设职业技术学院招商网站给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。
一次操作中#xff0c;你可以删除 nums 中的最小元素。
你需要使数组中的所有元素都大于或等于 k #xff0c;请你返回需要的 最少 操作次数。
示例 1#xff1a;
输入#xff1a;nums [2,11,10,1,3], k 10 输…给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。
一次操作中你可以删除 nums 中的最小元素。
你需要使数组中的所有元素都大于或等于 k 请你返回需要的 最少 操作次数。
示例 1
输入nums [2,11,10,1,3], k 10 输出3 解释第一次操作后nums 变为 [2, 11, 10, 3] 。 第二次操作后nums 变为 [11, 10, 3] 。 第三次操作后nums 变为 [11, 10] 。 此时数组中的所有元素都大于等于 10 所以我们停止操作。 使数组中所有元素都大于等于 10 需要的最少操作次数为 3 。 示例 2
输入nums [1,1,2,4,9], k 1 输出0 解释数组中的所有元素都大于等于 1 所以不需要对 nums 做任何操作。 示例 3
输入nums [1,1,2,4,9], k 9 输出4 解释nums 中只有一个元素大于等于 9 所以需要执行 4 次操作。
提示
1 nums.length 50 1 nums[i] 109 1 k 109 输入保证至少有一个满足 nums[i] k 的下标 i 存在。
法一直接模拟
class Solution {
public:int minOperations(vectorint nums, int k) {int ans 0;for (int num : nums){ans num k;}return ans;}
};如果nums的长度为n此算法时间复杂度为O(n)空间复杂度为O(1)。
法二用标准库
class Solution {
public:int minOperations(vectorint nums, int k) {return count_if(nums.begin(), nums.end(), [k] (int a) { return a k; });}
};如果nums的长度为n此算法时间复杂度为O(n)空间复杂度为O(1)。