news 2026/5/10 9:03:01

豆包 LeetCode 2251. 花期内花的数目 C实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
豆包 LeetCode 2251. 花期内花的数目 C实现

LeetCode 2251 花期内花的数目 C 语言实现

思路

  1. 把所有花的开始时间结束时间分别拆成两个数组
  2. 对两个数组排序
  3. 对每个人的到达时刻t
    • 开花数:开始时间 ≤ t的花数量
    • 凋谢数:结束时间 < t的花数量
    • 答案 = 开花数 - 凋谢数
  4. 手写二分:上界、下界

C 完整可提交代码

#include<stdlib.h>// 快速排序比较函数staticintcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}// 二分:找 <= target 的元素个数 (upper_bound)staticintupper_bound(int*arr,intn,inttarget){intl=0,r=n;while(l<r){intmid=l+(r-l)/2;if(arr[mid]<=target)l=mid+1;elser=mid;}returnl;}// 二分:找 < target 的元素个数 (lower_bound)staticintlower_bound(int*arr,intn,inttarget){intl=0,r=n;while(l<r){intmid=l+(r-l)/2;if(arr[mid]<target)l=mid+1;elser=mid;}returnl;}/** * Note: The returned array must be malloced, assume caller calls free(). */int*fullBloomFlowers(int**flowers,intflowersSize,int*flowersColSize,int*people,intpeopleSize,int*returnSize){*returnSize=peopleSize;int*start=(int*)malloc(sizeof(int)*flowersSize);int*end=(int*)malloc(sizeof(int)*flowersSize);// 拆分起止时间for(inti=0;i<flowersSize;i++){start[i]=flowers[i][0];end[i]=flowers[i][1];}// 排序qsort(start,flowersSize,sizeof(int),cmp);qsort(end,flowersSize,sizeof(int),cmp);int*ans=(int*)malloc(sizeof(int)*peopleSize);for(inti=0;i<peopleSize;i++){intt=people[i];intbloom=upper_bound(start,flowersSize,t);intfade=lower_bound(end,flowersSize,t);ans[i]=bloom-fade;}free(start);free(end);returnans;}

核心原理

  • 一朵花[s, e]s 当天开,e 当天仍然开
  • 所以凋谢条件是:结束时间 < t
  • 用两次二分相减直接得到当前盛开数量

复杂度

  • 排序:(O(n\log n))
  • 每个人二分:(O(m\log n))
  • 整体:(O(n\log n + m\log n)),最优时间复杂度

使用说明

LeetCode C 模板直接粘贴即可通过;
数组都是malloc动态分配,符合题目要求「返回数组需动态申请」。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 8:59:05

WebGPU与模型量化:浏览器端大模型本地化部署实战

1. 项目概述&#xff1a;在浏览器里跑大模型&#xff0c;到底靠不靠谱&#xff1f;最近几年&#xff0c;大语言模型&#xff08;LLM&#xff09;火得一塌糊涂&#xff0c;但一提到部署和运行&#xff0c;大家的第一反应往往是“得搞台服务器”、“得买张好显卡”、“API调用费不…

作者头像 李华
网站建设 2026/5/10 8:56:14

Windows Cleaner:专治C盘爆红,一键释放磁盘空间

Windows Cleaner&#xff1a;专治C盘爆红&#xff0c;一键释放磁盘空间 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 电脑C盘爆红&#xff0c;系统卡顿不堪&…

作者头像 李华
网站建设 2026/5/10 8:49:23

Zotero插件市场终极指南:5分钟掌握一站式插件管理

Zotero插件市场终极指南&#xff1a;5分钟掌握一站式插件管理 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons 你是否…

作者头像 李华
网站建设 2026/5/10 8:48:47

FunClip视频剪辑终极指南:3分钟快速上手AI智能剪辑

FunClip视频剪辑终极指南&#xff1a;3分钟快速上手AI智能剪辑 【免费下载链接】FunClip Open-source, accurate and easy-to-use video speech recognition & clipping tool, LLM based AI clipping intergrated. 项目地址: https://gitcode.com/GitHub_Trending/fu/Fun…

作者头像 李华
网站建设 2026/5/10 8:46:53

3步解决百度网盘限速难题:baidu-wangpan-parse工具实战指南

3步解决百度网盘限速难题&#xff1a;baidu-wangpan-parse工具实战指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否经常遇到百度网盘下载速度慢如蜗牛的问题&#x…

作者头像 李华
网站建设 2026/5/10 8:46:46

Docker Swarm轻量级TCP代理Swarmux:原理、部署与安全实践

1. 项目概述&#xff1a;当Docker Swarm遇上Mux&#xff0c;一个轻量级代理的诞生如果你和我一样&#xff0c;长期在容器化环境中摸爬滚打&#xff0c;那你对Docker Swarm一定不陌生。它作为Docker原生的集群管理工具&#xff0c;以其简单、易用、开箱即用的特性&#xff0c;在…

作者头像 李华