当前位置: 首页 > news >正文

LeetCode 100231.超过阈值的最少操作数 I

给你一个下标从 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(vector<int>& 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(vector<int>& nums, int k) {return count_if(nums.begin(), nums.end(), [k] (int a) { return a < k; });}
};

如果nums的长度为n,此算法时间复杂度为O(n),空间复杂度为O(1)。

http://www.lryc.cn/news/310420.html

相关文章:

  • Pygame教程01:初识pygame游戏模块
  • HTML和CSS (前端共三篇)【详解】
  • Linux——进程控制(二)进程等待
  • 多线程导入excel
  • 设计模式(十五)状态模式
  • Java基于SpringBoot的在线文档管理系统的设计与实现论文
  • 突破编程_C++_STL教程( list 的高级特性)
  • Scratch 第十六课-弹珠台游戏
  • 对简单工厂模式、工厂方法模式的思考
  • 【详识JAVA语言】面向对象程序三大特性之二:继承
  • 【剑指offer--C/C++】JZ3 数组中重复的数字
  • 基于SpringBoot的在线拍卖系统设计与实现(源码)
  • 卢森堡比利时土耳其媒体宣发稿助力跨境出海推广新闻营销
  • 冒泡排序(C语言详解)
  • STC-ISP原厂代码研究之 V3.7d汇编版本
  • 【word】引用文献如何标注右上角
  • MySQL 5.5、5.6、5.7的主从复制改进
  • 性能分析排查思路之日志(1)
  • Vue中如何实现条件渲染?
  • Postman上传文件的操作方法
  • linux系统Jenkins工具介绍
  • 【python】遵守 robots.txt 规则的数据爬虫程序
  • 使用爬虫去获取四六级成绩
  • 洛谷P1256 显示图像
  • 模拟器抓HTTP/S的包时如何绕过单向证书校验(XP框架)
  • 【JS 算法题: 将 json 转换为字符串】
  • 数的范围 刷题笔记
  • XSS简介及xsslabs第一关
  • 构建安全的REST API:OAuth2和JWT实践
  • 从0开始学习NEON(1)