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

[LeetCode] Hard-2251. 花期内花的数目 - 二分查找/有序数组

Problem: 2251. 花期内花的数目

2251. 花期内花的数目

  • 思路
  • 解题方法
  • Code

思路

看题目应该是一道比较经典的差分,本来准备拿差分数组做的,后来搂了一眼题解,发现用二分的方法更简单

解题方法

此题有一种很简便的方法,第i个人到达时间为people[i],所以我们不难找到在这个时间之前花期已经开始的花的数量,即v1=start <= people[i];同理我们也可以找到在这之前花期已经结束的花的数量,即v2=end < people[i];由此不难得出花开数目即为v1-v2,而上述思路中找到在某个时间点之前花期开始或者结束的数目我们在有序数组startsends内用二分查找即可很好的解决这个问题,因此我们在处理好输入数据后还需要让startsends有序即可。

Code

class Solution {
public:vector<int> fullBloomFlowers(vector<vector<int>>& flowers, vector<int>& people) {vector<int> ans;int n = flowers.size();vector<int> starts(n), ends(n);for(int i=0;i<n;i++){starts[i] = flowers[i][0];ends[i] = flowers[i][1];}sort(starts.begin(), starts.end());sort(ends.begin(), ends.end());int n2 = people.size();for(int i=0;i<n2;i++){int v1 = upper_bound(starts.begin(), starts.end(), people[i]) - starts.begin();int v2 = lower_bound(ends.begin(), ends.end(), people[i]) - ends.begin();ans.push_back(v1-v2);}return ans;}
};
http://www.lryc.cn/news/177963.html

相关文章:

  • VUE3父子组件传值defineProps() 和 defineEmits()
  • OmniPlan Pro 4 for Mac:引领项目管理的创新与高效
  • 封装JDBC,实现简单ORM框架
  • 监控与运维,主流it运维监控工具
  • 基于Matlab实现全局优化算法
  • Kafka 笔记 (Non-Root/Container)
  • 【Pytest】跳过执行之@pytest.mark.skip()详解
  • Android Framework 常见解决方案(22)防应用被LowMemoryKillerDaemon(LMKD)杀掉
  • Vue - 组件递归
  • 微信小程序案例2-1:学生信息
  • 小程序如何设置余额充值
  • vue项目打包成H5apk中使用语音播放
  • windows:批处理bat实例
  • websocket php教程
  • 【操作系统】调度算法的评价指标和三种调度算法
  • CSS详细基础(三)复合选择器
  • LeetCode【2251. 花期内花的数目】
  • 大数据(九):数据可视化(一)
  • 讲讲项目里的仪表盘编辑器(二)
  • 文心一言 VS 讯飞星火 VS chatgpt (102)-- 算法导论9.3 8题
  • axios添加缓存请求,防止多次请求,单页面多个同一组件造成多次请求解决方案
  • Java包装类与自动拆箱装箱
  • 基于SpringBoot网上超市的设计与实现【附万字文档(LW)和搭建文档】
  • 二、C++项目:仿muduo库实现并发服务器之时间轮的设计
  • 计算机竞赛 深度学习OCR中文识别 - opencv python
  • 蓝桥等考Python组别五级003
  • 学之思项目第一天-完成项目搭建
  • pandas--->CSV / JSON
  • LeetCode算法二叉树—116. 填充每个节点的下一个右侧节点指针
  • 二、2023.9.28.C++基础endC++内存end.2