【华为OD机试高分必刷题目】神奇的卡片(C++等差数列实现)

🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,高分通过!

文章目录

  • 【华为OD机试高分必刷题目】神奇的卡片(C++等差数列实现)
    • 题目描述
    • 解题思路
    • C++题解代码
    • 代码OJ评判结果
    • 代码讲解
    • 寄语

【华为OD机试高分必刷题目】神奇的卡片(C++等差数列实现)

题目描述

话说学长是公认的天才,他刚一出生的时候就从一堆数字卡片中选出了4张卡片:5,7,6,8!这4个数字有什么神秘之处呢?他发现,如果把这4张卡片自左往右的排成:5,6,7,8,这4个数字就构成了等差数列!当年学长选出了n组卡片,据说都能够构成等差数列。但是事实真的是这样吗?学长真的有这么神奇吗?后台给出的n组数据就是学长选出的n组卡片,请你判断一下每一组卡片是否能构成等差数列!

输入

第一个数为数据的组数n,表示后面有n行,每行中的第一个数为该组数据的元素个数m(1 ≤ m ≤ 100),其后是m个正整数(不会超出int的表示范围)。

输出

如果能够构成等差数列,输出“yes”,否则输出“no”(均不含引号)。

样例输入

2
4 5 7 6 8
8 1 7 3 2 8 12 78 3

亚琼

yes
no

解题思路

解题思路如下:

  • 读取输入的数据组数n。

  • 对于每一组数据,读取元素个数m和m个正整数。

  • 对这m个正整数进行排序。

  • 计算相邻数字的差,检查是否为一个常数。

  • 如果差值是常数,则输出 “yes”;否则,输出 “no”。

通过这个思路,我们利用了等差数列的性质,即相邻数字之差为常数。排序是为了保证数字的顺序,方便计算差值。最终的判断逻辑是通过遍历相邻数字,检查它们的差是否一致。如果一致,说明构成了等差数列,输出 “yes”;否则,输出 “no”。

C++题解代码

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;// 判断是否能构成等差数列的函数
string isArithmeticSequence(vector<int>& nums) {if (nums.size() < 3) {return "yes";  // 如果元素个数小于3,直接返回 "yes"}sort(nums.begin(), nums.end());  // 先将数组排序int diff = nums[1] - nums[0];  // 计算等差for (int i = 2; i < nums.size(); i++) {if (nums[i] - nums[i - 1] != diff) {return "no";}}return "yes";
}int main() {int n;cin >> n;  // 读取输入的数据组数// 遍历每一组数据for (int k = 0; k < n; k++) {int m;cin >> m;  // 读取每组数据的元素个数// 读取每组数据的元素列表vector<int> data(m);for (int i = 0; i < m; i++) {cin >> data[i];}// 判断是否构成等差数列并输出结果string result = isArithmeticSequence(data);cout << result << endl;}return 0;
}

代码OJ评判结果

评判状态
Accepted
评判状态 (测试)
Accepted
内存
18352KB
用时
447ms
语言
c++
代码长度
1154B
提交时间
2023-11-17 20:00:16
评判时间
2023-11-17 20:00:18

代码讲解

以下是对上述 C++ 代码的详细讲解:

  1. isArithmeticSequence 函数:

    • isArithmeticSequence 是一个用于判断输入的整数向量是否构成等差数列的函数。
    • 如果向量的元素个数小于3,直接返回 “yes”,因为任意两个数字都构成等差数列。
    • 使用 sort 函数对向量进行排序。
    • 计算相邻数字的差,检查是否为一个常数。如果差值是常数,则返回 “yes”;否则,返回 “no”。
  2. 主程序部分:

    • 使用 cin 从标准输入中读取数据。
    • 读取输入的数据组数 n
    • 遍历每一组数据:
      • 读取每组数据的元素个数 m
      • 读取每组数据的元素列表,并存储在整数向量 data 中。
      • 调用 isArithmeticSequence 函数判断是否构成等差数列,并输出结果。

这个 C++ 代码的结构与前述 Python 和 Java 代码类似,通过函数将判断等差数列的逻辑独立出来,提高了代码的可读性和复用性。C++ 使用向量(vector)作为动态数组的数据结构,并使用标准库中的 sort 函数进行排序。

寄语

🚀✨ 朋友,希望你的华为OD机试就像是一场轻松的技术party!愿你的代码如同畅快的音符,跳跃在键盘上,最后弹奏出一曲高分之歌。加油,你是技术舞台上的巨星!通过机试,就像是风轻云淡,轻轻松松就把高分收入囊中。祝愿你的编程之旅一路顺风,破风前行,每一行代码都是成功的注脚!🌈💻

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/195345.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卡方检验-python代码

故事背景 问题 卡方检验的结果怎么计算&#xff1f; 方法 python代码 import numpy as np from scipy.stats import chi2_contingency# 观察频数矩阵 observed np.array([[47, 21, 17],[63, 29, 15],[11, 2, 4]])# 进行卡方检验 chi2, p, dof, expected chi2_contingency(o…

【413.等差数列划分】

目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:int numberOfArithmeticSlices(vector<int>& nums) {int nnums.size();if(n<3) return 0;vector<int> dp(n);dp[2]dp[1]dp[0]0;if(nums[2]-nu…

视频制作技巧:添加srt字幕,批量剪辑,省时省力

随着社交媒体的兴起&#xff0c;视频制作越来越成为人们表达自我、分享经验的重要方式。然而&#xff0c;视频制作需要耗费大量的时间和精力。在视频制作中&#xff0c;字幕是非常重要的元素&#xff0c;可以帮助观众更好地理解视频内容。而SRT字幕则是一种更为先进的字幕技术&…

React经典初级错误

文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者&#xff0c;我们创造bug&#xff0c;传播bug&#xff0c;毫不留情地消灭bug&#xff0c;在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案&#xff0c;感兴…

【开源】基于Vue.js的快递管理系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快递区域模块2.4 快递货架模块2.5 快递档案模块 三、界面展示3.1 登录注册3.2 快递类型3.3 快递区域3.4 快递货架3.5 快递档案3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 …

整理MLAI学习路径图

干货分享&#xff1a; 下面给出一个笔者自己整理的GitHub仓库&#xff1a;https://github.com/isLinXu/awesome-road-map&#xff0c;里面包含了一些可供参考的学习路径和思维导图&#xff0c;并整理微软、meta、谷歌、Kaggle以及华为、百度、阿里、腾讯、讯飞等相关的学习资源…

syncthing 多设备同步

【精选】linux间文件实时同步(syncthing) ---带历史版本“后悔药”_syncthing linux_井底蛙-jdw的博客-CSDN博客https://blog.csdn.net/qq_41355314/article/details/116694273 wget https://gh-proxy.com/https://github.com/syncthing/syncthing/releases/download/v1.26.1/…

02-3解析BeautifulSoup

一、基本简介 BeautifulSoup简称&#xff1a;bs4什么是BeatifulSoup&#xff1f;  BeautifulSoup&#xff0c;和lxml一样&#xff0c;是一个html的解析器&#xff0c;主要功能也是解析和提取数据优缺点&#xff1f;  缺点&#xff1a;效率没有lxml的效率高  优点&#xff1…

C#winform门诊医生系统+sqlserver

C#winform门诊医生系统sqlserver说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a;基于C#winform架构和sql server数据库 功能模块&#xff1a; 个人中心&#xff1a;修改个人信息、打开照片并进行修改 预约挂号&#xff1a;二级…

el-table中el-popover失效问题

场景&#xff1a;先有一个数据表格&#xff0c;右侧操作栏为固定列&#xff0c;另外有一个字段使用了el-popover来点击弹出框来修改值&#xff0c;发现不好用&#xff0c;点击后无法显示弹出框&#xff0c;但当没有操作栏权限时却意外的生效了。 这种问题真是不常见&#xff0…

23111705[含文档+PPT+源码等]计算机毕业设计SSM框架美妆商城全套电商购物

文章目录 **软件开发环境及开发工具&#xff1a;****项目功能介绍&#xff1a;****论文截图&#xff1a;****实现&#xff1a;****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 软件开发环境及开发工具&#xff…

Web前端—小兔鲜儿电商网站底部设计及网站中间过渡部分设计

版本说明 当前版本号[20231117]。 版本修改说明20231116初版20231117补充完后面未发布的内容 目录 文章目录 版本说明目录底部&#xff08;footer&#xff09;服务帮助中心版权 banner侧边栏圆点 新鲜好物&#xff08;goods&#xff09;标题内容 人气推荐热门品牌生鲜 生鲜内…

Resolume Arena 7.15.0(VJ音视频软件)

Resolume Arena 7是一款专业的实时视觉效果软件&#xff0c;用于创造引人入胜的视频演出和灯光秀。它提供了丰富多样的功能和工具&#xff0c;可以将音频、视频和图像合成在一起&#xff0c;创造出令人惊叹的视觉效果。 Resolume Arena 7支持多种媒体格式&#xff0c;包括视频文…

B031-网络编程 Socket Http TomCat

目录 计算机网络网络编程相关术语IP地址ip的概念InerAdress的了解与测试 端口URLTCP、UDP和7层架构TCPUDPTCP与UDP的区别和联系TCP的3次握手七层架构 Socket编程服务端代码客户端代码 http协议概念Http报文 Tomcat模拟 计算机网络 见文档 网络编程相关术语 见文档 IP地址 …

【C++】数组中出现次数超过一半的数字

代码&#xff1a; class Solution { public:/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可** * param numbers int整型vector * return int整型*/int MoreThanHalfNum_Solution(vector<int>& numbers) {int …

一键免费去除视频水印和字幕的AI工具

最近有学员经常让我分享好用的智能抹除视频水印字幕AI工具&#xff0c;今天就给大家分享一个我经常用到的这款工具——腾讯智影&#xff0c;这个平台提供的智能抹除功能&#xff0c;借助这个工具我们可以将视频中不需要的字幕或者水印删除掉。 不过这款工具每天有三次免费次数…

JavaEE进阶学习:Spring 的创建和使用

Spring 就是⼀个包含了众多工具方法的 IoC 容器。既然是容器那么它就具备两个最基本的功能&#xff1a; 将对象存储到容器&#xff08;Spring&#xff09;中从容器中将对象取出来 接下来使用 Maven 方式来创建一个 Spring 项目&#xff0c;创建 Spring 项目和 Servlet 类似&a…

Neo4j安装(Docker中安装Neo4j)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

clion qt导出dll给别的项目用

clion 导出dll给别的项目用&#xff0c;并且引入matplotcpp dll生成一个mydll的dll文件 1.先做一个简单dll的测试下 cmake_minimum_required(VERSION 3.26) project(untitled) set(CMAKE_CXX_STANDARD 11) add_library(untitled SHARED main.cpp)main.h void hello();main.cp…

『C++成长记』C++入门——内联函数

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、内联函数 &#x1f4d2;1.1内联函数的概念 &#x1f4d2;1.2内联函数的特征 …