news 2026/1/12 12:07:39

LC.846 | 一手顺子 | 有序集合| map计数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LC.846 | 一手顺子 | 有序集合| map计数

输入:

  • 整数数组hand表示手里的牌面值
  • 整数groupSize表示每组顺子的长度

要求:

  • 把所有牌分成若干组
  • 每组必须是groupSize连续
  • 能分完返回true,否则false

输出:

  • bool

思路:

这题的关键不是“怎么凑一组顺子”,而是:如果能成功分组,最小的牌一定只能作为某个顺子的起点(它不可能被更小的牌带着走,因为没有更小的了)。

所以策略很直接:

  1. 如果hand.size() % groupSize != 0,直接不可能。

  2. map<int,int> count统计每种牌出现次数(map自动按牌面升序)。

  3. map.begin()开始扫每个牌startCard

  • num = count[startCard],表示当前这个牌还剩多少张没被用掉。
  • 如果num > 0,说明我们必须以startCard作为起点,开num个顺子:
    • 需要把[startCard, startCard+1, ..., startCard+groupSize-1]每个牌都扣掉num
    • 若其中某张牌数量不足(count[currentCard] < num),直接失败
  1. 扫完不失败就成功。

这个贪心的本质是:先把最小牌“安置掉”,否则后面无论怎么分组它都会卡死。


复杂度:

  • 时间复杂度:O(N log N)
    • map和后续访问都是log
  • 空间复杂度:O(N)(计数表)

classSolution{public:boolisNStraightHand(vector<int>&hand,intgroupSize){if((int)hand.size()%groupSize!=0)returnfalse;map<int,int>count;for(intx:hand){count[x]++;}for(autoit=count.begin();it!=count.end();++it){intstartCard=it->first;intnum=it->second;if(num>0){for(inti=0;i<groupSize;++i){intcur=startCard+i;if(count[cur]<num)returnfalse;count[cur]-=num;}}}returntrue;}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/30 19:41:16

YOLOv11检测结果分析:Precision-Recall曲线绘制

YOLOv11检测结果分析&#xff1a;Precision-Recall曲线绘制 在智能安防、自动驾驶和工业质检等实际场景中&#xff0c;目标检测模型不仅要“看得快”&#xff0c;更要“看得准”。随着 YOLO 系列不断演进&#xff0c;YOLOv11 凭借其更强的特征提取能力和更优的锚框机制&#xf…

作者头像 李华
网站建设 2025/12/30 20:58:46

PyTorch自动求导机制autograd详解(含代码演示)

PyTorch自动求导机制与CUDA容器化开发环境实战解析 在深度学习模型研发过程中&#xff0c;我们常常面临两个核心挑战&#xff1a;一是如何高效、准确地计算复杂网络的梯度&#xff1b;二是如何快速搭建稳定且高性能的训练环境。PyTorch 的 autograd 自动求导系统和预集成的 PyT…

作者头像 李华
网站建设 2025/12/28 22:04:38

PyTorch模型转ONNX格式用于跨平台部署

PyTorch模型转ONNX格式用于跨平台部署 在现代AI系统开发中&#xff0c;一个常见的困境是&#xff1a;研究团队用PyTorch训练出高性能模型后&#xff0c;工程团队却难以将其高效部署到生产环境。尤其是在面对边缘设备、移动端或异构硬件时&#xff0c;框架依赖和推理性能问题尤为…

作者头像 李华
网站建设 2025/12/28 22:03:37

Markdown表格美化:展示PyTorch模型性能对比数据

Markdown表格美化&#xff1a;展示PyTorch模型性能对比数据 在深度学习项目中&#xff0c;团队常常面临一个看似简单却影响深远的问题&#xff1a;如何高效、清晰地共享和比较不同模型的训练表现&#xff1f;尤其是在使用GPU资源进行大规模实验时&#xff0c;参数量、显存占用、…

作者头像 李华