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

刷题笔记15

问题描述

小M和小F在玩飞行棋。游戏结束后,他们需要将桌上的飞行棋棋子分组整理好。现在有 N 个棋子,每个棋子上有一个数字序号。小M的目标是将这些棋子分成 M 组,每组恰好5个,并且组内棋子的序号相同。小M希望知道是否可以按照这种方式对棋子进行分组。

例如,假设棋子序号为 [1, 2, 3, 4, 5],虽然只有5个棋子,但由于序号不同,因此不能形成有效的分组。如果序号是 [1, 1, 1, 1, 1, 2, 2, 2, 2, 2],则可以形成两个有效分组,因此输出为 True


测试样例

样例1:

输入:nums = [1, 2, 3, 4, 5]
输出:"False"

样例2:

输入:nums = [1, 1, 1, 1, 2, 1, 2, 2, 2, 2]
输出:"True"

样例3:

输入:nums = [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
输出:"True"

样例4:

输入:nums = [7, 7, 7, 8, 8, 8, 8, 8, 7, 7]
输出:"True"

样例5:

输入:nums = [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9]
输出:"False"

解决方案分析

  1. 出现次数计数:首先,我们需要统计每个数字的出现次数。
  2. 检查能否分组:对于每个数字的出现次数,如果某个数字的出现次数不能被 5 整除,则无法分成有效的组,直接返回 "False"
  3. 判断是否可以分成 M 组:如果所有数字的出现次数都能被 5 整除,则返回 "True",表示可以按要求分组。

步骤

  1. 统计频率:使用一个哈希表(或字典)来统计每个数字出现的次数。
  2. 判断条件:遍历统计的次数,如果某个数字的出现次数不能被 5 整除,直接返回 "False"
  3. 返回结果:如果所有数字的出现次数都能被 5 整除,返回 "True"

 代码实现

代码说明

  1. unordered_map:我们使用了 C++ 标准库中的 unordered_map 来存储每个数字及其出现的次数。它提供了快速的查找、插入和删除操作。
  2. 循环遍历数字:我们遍历 nums 数组,将每个数字的出现次数统计到 count_map 中。
  3. 检查条件:遍历 count_map 中的每个数字和其对应的计数,判断是否能被 5 整除。如果有任何数字的出现次数不能被 5 整除,返回 "False"
  4. 最终返回:如果所有数字的出现次数都能被 5 整除,则返回 "True"

测试用例解析

  • 样例 1{1, 2, 3, 4, 5},每个数字出现一次,无法分成组,输出 "False"
  • 样例 2{1, 1, 1, 1, 2, 1, 2, 2, 2, 2},1 的出现次数是 5,2 的出现次数是 5,能分成 2 组,输出 "True"
  • 样例 3{5, 5, 5, 5, 5, 5, 5, 5, 5, 5},每个数字 5 出现 10 次,能分成 2 组,输出 "True"
  • 样例 4{7, 7, 7, 8, 8, 8, 8, 8, 7, 7},7 和 8 都出现了 5 次,能分成 2 组,输出 "True"
  • 样例 5{9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9},数字 9 出现了 11 次,不能被 5 整除,输出 "False"

时间复杂度

  • 统计数字频率需要遍历一次数组,时间复杂度为 O(N),其中 N 是数组的长度。
  • 遍历哈希表的键值对,最多需要 O(K) 的时间,其中 K 是不同数字的个数(在最坏情况下 K = N)。
  • 总体时间复杂度为 O(N),空间复杂度为 O(K)。

哈哈--

相关文章:

刷题笔记15

问题描述 小M和小F在玩飞行棋。游戏结束后,他们需要将桌上的飞行棋棋子分组整理好。现在有 N 个棋子,每个棋子上有一个数字序号。小M的目标是将这些棋子分成 M 组,每组恰好5个,并且组内棋子的序号相同。小M希望知道是否可以按照这…...

【LeetCode热题100】队列+宽搜

这篇博客是关于队列宽搜的几道题&#xff0c;主要包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度、在每个数行中找最大值。 class Solution { public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if(!root) …...

【阵列信号处理】相干信号和非相干信号生成

文章目录 一、总结二、知识点相干&#xff08;coherent&#xff09;和非相干&#xff08;incoherent&#xff09;信号相干信号生成代码 相关信号&#xff08;correlated signal&#xff09;相关信号生成代码 正交信号定义 本文记录博主的科研日记。如果对博主的其他文章感兴趣&…...

React 组件生命周期

React 组件生命周期 React 组件生命周期是React框架中一个核心概念,它描述了一个组件从创建到销毁的过程。理解组件生命周期对于高效开发React应用至关重要,因为它允许开发者在一个组件的不同阶段执行特定的逻辑。本文将详细介绍React组件的生命周期方法,并解释它们在组件的…...

Kylin Server V10 下基于Sentinel(哨兵)实现Redis高可用集群

一、什么是哨兵模式 Redis Sentinel 是一个分布式系统,为 Redis 提供高可用性解决方案。可以在一个架构中运行多个 Sentinel 进程(progress)这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线信息,并使用投票协议(agreement protocols)来决定是否执行…...

07-Making a Bar Chart with D3.js and SVG

课程链接 Curran的课程&#xff0c;通过 D3.js 的 scaleLinear, max, scaleBand, axisLeft, axisBottom&#xff0c;根据 .csv 文件生成一个横向柱状图。 【注】如果想造csv数据&#xff0c;可以使用通义千问&#xff0c;关于LinearScale与BandScale不懂的地方也可以在通义千…...

硅谷甄选前端项目环境配置笔记

此教程来自于尚硅谷 文章目录 **此教程来自于尚硅谷**硅谷甄选运营平台一、搭建后台管理系统模板1.1项目初始化1.1.1环境准备1.1.2初始化项目 1.2项目配置一、eslint配置1.1vue3环境代码校验插件1.2修改.eslintrc.cjs配置文件1.3.eslintignore忽略文件1.4运行脚本 二、配置**pr…...

6.7机器学习期末复习题

空间 样本空间 就是属性的所有可能情况&#xff0c;包括了一切可能出现或不可能出现的所有样本情况 版本空间&假设空间 假设空间就是在样本空间的基础上&#xff0c;给所有属性都加了一个通配符&#xff0c;表示任意即可&#xff1b;以及加上了一个空集&#xff0c;表示…...

1123--日期类

目录 一 java 1. Date类 2. calendar类 3. 第三代日期类‘ 3.1 常用方法 3.2 格式化操作 一 java 1. Date类 2. calendar类 3. 第三代日期类‘ 3.1 常用方法 3.2 格式化操作...

YOLOV5 /onnx模型转换成rknn

上两篇文章讲述了pytorch模型下best.pt转换成onnx模型&#xff0c;以及将onnx进行简化成为best-sim.onnx, 接下来这篇文章讲述如何将onnx模型转换成rknn模型&#xff0c;转换成该模型是为了在rk3568上运行 1.创建share文件夹 文件夹包含以下文件best-sim.onnx,rknn-tookit2-…...

Echarts+VUE饼图的使用(基础使用、多个饼图功能、单组饼图对应颜色使用)

安装&#xff1a;npm install echarts --save 配置:main.js // 引入echarts import * as echarts from echarts Vue.prototype.$echarts echarts一、基础饼图&#xff08;直接拷贝就能出效果&#xff09; <div class"big-box" ref"demoEhart"><…...

刘铁猛C#入门 026 重写与多态

类的继承 类成员的“横向扩展”(成员越来越多)类成员的“纵向扩展”(行为改变&#xff0c;版本增高)类成员的隐藏(不常用)重写与隐藏的发生条件&#xff1a;函数成员&#xff0c;可见&#xff0c;签名一致 函数成员:方法 、属性可见&#xff1a;父类修饰符是public protected …...

《筑牢安全防线:培养 C++安全编程思维习惯之道》

在当今数字化飞速发展的时代&#xff0c;软件安全的重要性已提升到前所未有的高度。C作为一种广泛应用于系统开发、游戏制作、高性能计算等众多领域的编程语言&#xff0c;其程序的安全性更是关乎重大。培养 C安全编程的思维习惯&#xff0c;不仅是开发者个人能力提升的关键&am…...

《TCP/IP网络编程》学习笔记 | Chapter 16:关于 I/O 流分离的其他内容

《TCP/IP网络编程》学习笔记 | Chapter 16&#xff1a;关于 I/O 流分离的其他内容 《TCP/IP网络编程》学习笔记 | Chapter 16&#xff1a;关于 I/O 流分离的其他内容分离 I/O 流2 次 I/O 流分离分离「流」的好处「流」分离带来的 EOF 问题 文件描述符的的复制和半关闭终止「流」…...

单片机学习笔记 5. 数码管静态显示

更多单片机学习笔记&#xff1a;单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~ 目录 0、实现的功能 1、Keil工程 1-1 数码管显示原理 1-2 静态与动态显示 1-3 74HC573锁存器的工作原理 1-…...

ValueError: not enough values to unpack (expected 2, got 1) 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

java基础知识(常用类)

一、包装类&#xff08;Wrapper) &#xff08;1&#xff09;包装类与基本数据的转换 装箱&#xff1a;基本类型->包装类型 拆箱&#xff1a;包装类型->基本类型 java5以后是自动装箱和拆箱的方式&#xff0c;自动装箱底层调用的是valueOf方法&#xff0c;比如Integer.…...

Selenium+Java(19):使用IDEA的Selenium插件辅助超快速编写Pages

前言 或是惊叹于Selenium对于IDEA的支持已经达到了这样的地步,又或是由于这个好用的小工具的入口就在那里,它已经陪伴了我这么久,而我这么久的时间却都没有发现它。在突然发现这个功能的一瞬间,真的是喜悦感爆棚,于是赶快写下了这篇文章。希望可以帮助到其他同样在做UI自动…...

决策树分类算法【sklearn/决策树分裂指标/鸢尾花分类实战】

决策树分类算法 1. 什么是决策树&#xff1f;2. DecisionTreeClassifier的使用&#xff08;sklearn&#xff09;2.1 算例介绍2.2 构建决策树并实现可视化 3. 决策树分裂指标3.1 信息熵&#xff08;ID3&#xff09;3.2 信息增益3.3 基尼指数&#xff08;CART&#xff09; 4. 代码…...

深入理解 Spring Boot 的 WebApplicationType

1. 前言 在 Spring Boot 应用程序启动过程中,WebApplicationType 是一个重要的概念,它决定了应用程序是以 Web 应用程序的形式运行还是以非 Web 应用程序的形式运行。本文将详细探讨 WebApplicationType 的工作机制及其在实际项目中的应用。 2. 什么是 WebApplicationType?…...

保姆级教程:Multisim 14.0 从下载到汉化,手把手教你避开安装过程中的那些坑

Multisim 14.0 终极安装指南&#xff1a;从零开始到完美汉化的全流程解析 对于电子工程和自动化领域的学习者与从业者而言&#xff0c;Multisim 14.0 无疑是一款不可或缺的电路设计与仿真工具。然而&#xff0c;许多用户在初次安装过程中常常遇到各种棘手问题&#xff0c;导致软…...

AhMyth混淆技术:Android RAT的APK反编译保护与代码混淆全指南

AhMyth混淆技术&#xff1a;Android RAT的APK反编译保护与代码混淆全指南 【免费下载链接】AhMyth Cross-Platform Android Remote Administration Tool | The only maintained version of AhMyth on github | A revival of the original repository at https://GitHub.com/AhM…...

工业级SCADA革命:FUXA零代码可视化平台如何重塑工业监控决策

工业级SCADA革命&#xff1a;FUXA零代码可视化平台如何重塑工业监控决策 【免费下载链接】FUXA Web-based Process Visualization (SCADA/HMI/Dashboard) software 项目地址: https://gitcode.com/gh_mirrors/fu/FUXA 在工业4.0和数字化转型浪潮中&#xff0c;传统SCADA…...

机器学习预测关税冲击下的股市波动:随机森林、SVR、kNN与线性回归实战对比

1. 项目概述与核心问题拆解做量化研究的朋友们&#xff0c;尤其是关注宏观事件对市场冲击的&#xff0c;应该都对“黑天鹅”事件不陌生。政策变动&#xff0c;特别是像关税这种直接影响国际贸易成本和公司利润的宏观变量&#xff0c;往往会在短期内引发市场剧烈波动。传统的做法…...

长期使用Taotoken Token Plan套餐带来的成本节约感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用Taotoken Token Plan套餐带来的成本节约感受 1. 项目背景与成本挑战 我们团队负责一个持续进行文本分析与内容生成的内部…...

MPC Video Renderer技术解析:DirectShow硬件加速渲染器的实现原理与深度剖析

MPC Video Renderer技术解析&#xff1a;DirectShow硬件加速渲染器的实现原理与深度剖析 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer MPC Video Renderer是一款基于GPL v3协…...

如何让旧电脑联网?安卓手机以太网共享来帮忙!

通过安卓手机以太网共享让旧电脑联网2026 年 5 月 21 日&#xff0c;阅读时长 3 分钟。有人喜欢摆弄 90 年代和 21 世纪初的旧电脑和软件&#xff0c;比如童年时的 Amiga 500 电脑至今仍被保留且让人爱不释手。不过&#xff0c;Windows 9x/XP 时代的计算机使用经历最让人怀念&a…...

Label Studio数据源配置全攻略:除了S3和Azure,如何用本地文件夹搭建高效标注流水线?

Label Studio数据存储方案深度对比&#xff1a;从云端到本地的架构选型指南 在机器学习项目的数据标注环节&#xff0c;Label Studio已成为众多团队的首选工具。但面对不同规模、不同安全要求的项目时&#xff0c;如何选择最适合的数据存储方案却让许多技术决策者感到困扰。本文…...

告别割裂开发:用WebUI插件在UE5里无缝嵌入你的React/Vue应用(附完整交互蓝图)

告别割裂开发&#xff1a;用WebUI插件在UE5里无缝嵌入你的React/Vue应用&#xff08;附完整交互蓝图&#xff09;在数字孪生和企业级可视化项目中&#xff0c;前端团队往往已经用React或Vue构建了复杂的数据看板&#xff0c;而3D场景部分则由UE5团队负责。传统做法是将两者分开…...

3.RAG

一、RAG初识&#xff1a; RAG(Retrieval-Augmented Generation&#xff0c;检索增强生成)是一种将 信息检索与文本生成 相结合的技术框架。它通过以下流程解决大模型(LLM)的“知识盲区”问题: 用户问题->从知识库检索相关文档->将文档作为上下文输入LLM->生成精准答…...