文章
时间轴
标签
音乐室
友人帐
一刻时光
清单
留言板
相册
算法海洋
关于
Slcpの童话镇 🏰
写文章
2251. 花期内花的数目
困难
数据结构与算法
原题链接
发布日期:
2023年03月16日
文章字数:
5.1k
阅读次数:
425
阅读时长:
0小时0分0秒
![image-20230316161235123](https://img.slcp.top/image-20230316161235123.png) ## 解题思路 - 单独统计开花时间和凋落时间 - 进行排序 - 二分 > 复杂度分析 时间复杂度:`O((n+m)logn)`,其中` n `是` flowers `的长度,`m` 是` persons `的长度。 空间复杂度:`O(n)` ## 代码 ~~~java class Solution { public int[] fullBloomFlowers(int[][] flowers, int[] persons) { var starts = Arrays.stream(flowers) .mapToInt(f -> f[0]) .sorted() .toArray(); var ends = Arrays.stream(flowers) .mapToInt(f -> f[1]) .sorted() .toArray(); return Arrays.stream(persons) .map(p -> lowerBound(starts, p + 1) - lowerBound(ends, p)) .toArray(); } int lowerBound(int[] arr, int x) { int left = 0, right = arr.length; while (left < right) { var mid = (left + right) >>> 1; if (arr[mid] >= x) right = mid; else left = mid + 1; } return left; } } ~~~
您阅读这篇文章共耗时:
0小时16分34秒
文章链接:
https://www.slcp.top/article/read/1636280713905242113
版权声明:
本博客所有文章除特別声明外,均采用
CC BY 4.0
许可协议。转载请注明来源
Slcp
!
转载文章以及部分引用均为自己整理记录学习而用,若有侵权,请联系删除。
数据结构与算法
评论
Valine
Gitalk
目录
搜索
首页
前进
后退
刷新
申请友链
在线联系