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

news2024/11/23 3:25:03

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

文章目录

  • 【华为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.coloradmin.cn/o/1220483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第二十五天| 216 组合总合 ||| 17 电话号码的字母组合

216 组合总和 ||| 暴力 class Solution {List<List<Integer>>res new ArrayList<>();List<Integer>newList new ArrayList<>();public List<List<Integer>> combinationSum3(int k, int n) {soluHelper(1,k,n,0);return res;}pr…

如何使用ONLYOFFICE来P惊悚特效图

如何使用ONLYOFFICE来P惊悚特效图 老朋友们可能会经常看见本号主又换头像了&#xff0c;各种各样精神分裂成一群人或者我和自己俩个人的头像&#xff0c;之前讲过的&#xff1a; 手把手教你如何自己一个人精神分裂成一群人https://mp.weixin.qq.com/s/yacKt7N3sZnarfMhXRNdBA…

Kafka 集群实现数据同步

Kafka 介绍 Kafka 是一个高吞吐的分布式消息系统&#xff0c;不但像传统消息队列&#xff08;RaabitMQ、RocketMQ等&#xff09;那样能够【异步处理、流量消峰、服务解耦】 还能够把消息持久化到磁盘上&#xff0c;用于批量消费。除此之外由于 Kafka 被设计成分布式系统&…

Docker在Centos7下的安装

1、卸载旧版本 执行如下指令对旧版本进行卸载&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 执行完毕后&#xff0c;如果输入docker version发现do…

【解疑】ZIP压缩包的密码可以取消吗?

ZIP是工作中经常用到的文件压缩格式&#xff0c;它可以将多个文件压缩成一个文件&#xff0c;便于传输和存储。有时候&#xff0c;为了保护文件的私密性&#xff0c;很多人还会在压缩文件的同时设置密码保护。那问题来了&#xff0c;要是后续不需要保护了&#xff0c;ZIP压缩包…

Elasticsearch备份与还原:使用elasticdump

在数据管理的世界里&#xff0c;备份和还原数据是重中之重的日常工作&#xff0c;特别是对于Elasticsearch这样的强大而复杂的搜索引擎。备份不仅可以用于灾难恢复&#xff0c;还可以在数据迁移、测试或者升级等场景中发挥重要作用。 在本博客中&#xff0c;我们将会重点介绍如…

基于SSM的大学餐厅菜品推荐和点评系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

Linux系统下安装go

目录 下载go安装包解压包并安装添加环境变量验证是否安装成功 下载go安装包 官网地址&#xff1a;go 解压包并安装 复制好包的下载链接后使用下面命令进行安装&#xff1a; curl -O https://storage.googleapis.com/golang/go1.11.1.linux-amd64.tar.gz mkdir -p ~/installe…

为什么要写测试用例,测试用例写给谁看?

“为什么要编写测试用例&#xff0c;测试用例写给谁看”&#xff0c;这个问题看似简单&#xff0c;但却涵盖了一系列复杂的考虑因素&#xff0c;并不太好回答。 为了向各位学测试的同学们解释清楚“为什么编写测试用例是至关重要的”&#xff0c;我将通过以下3个方面进行展开&…

.Net 8正式发布

Net 8是官方号称有史以来性能最快的一个版本了。 .Net 8 增加了数以千计的性能、稳定性和安全性改进&#xff0c;以及平台和工具增强功能&#xff0c;有助于提高开发人员的工作效率和创新速度。 反正就是快&#xff0c;性能好、工作效率更高&#xff01; 这个版本&#xff0c…

腾讯云服务器怎么买便宜?腾讯云服务器优惠链接

现在&#xff0c;让我们一起探索如何在腾讯云服务器上购买便宜的云服务器吧&#xff01; 首先&#xff0c;我们来看看都有哪些便宜的腾讯云服务器值得我们入手吧&#xff01; 首先是轻量2核2G3M服务器&#xff0c;只需要一年88元就能轻松拥有&#xff0c;对于刚开始接触云服务…

mtgsig1.2简单分析

{"a1": "1.2", # 加密版本"a2": new Date().valueOf() - serverTimeDiff, # 加密过程中用到的时间戳. 这次服主变坏了, 时间戳需要减去一个 serverTimeDiff(见a3) ! "a3": "这是把xxx信息加密后提交给服务器, 服主…

【论文解读】CP-SLAM: Collaborative Neural Point-based SLAM System_神经点云协同SLAM系统(下)

目录 4 CP-SLAM实验 4.1 两个智能体协作&#xff08; Two-agent Collaboration&#xff09; 4.2 单智能体回环&#xff08;Single Agent with Loop&#xff09; 4.3 地图构建&#xff08;Map Reconstruction&#xff09; 4.4 消融实验 姿态图优化&#xff08;Pose Graph …

【献给过去的自己】栈实现计算器(C语言)

背景 记得在刚学C语言时&#xff0c;写了一篇栈实现计算器-CSDN博客文章。偶然间看到了文章的阅读量以及评论&#xff0c;居然有1.7w的展现和多条博友的点评&#xff0c;反馈。 现在回过头来看&#xff0c;的确有许多不严谨的地方&#xff0c;毕竟当时分享文章时&#xff0c;还…

实时人眼追踪、内置3D引擎,联想ThinkVision裸眼3D显示器创新四大应用场景

11月17日&#xff0c;在以“因思而变 智领未来”为主题的Think Centre和ThinkVision 20周年纪念活动上&#xff0c;联想正式发布了业内首款2D/3D 可切换裸眼3D显示器——联想ThinkVision 27 3D。该产品首次将裸眼2D、3D可切换技术应用在显示器领域&#xff0c;并拓展了3D技术多…

柯桥外语学校|西班牙语中关于金钱的俚语

01 Estar forrado(a) “Forrado(a)”源自动词“forrar”&#xff0c;该动词本意为“包&#xff1b;裹”的动作。 在口语中&#xff0c;则是形容一个人被金钱所包裹&#xff0c;可见这个人是多么地有钱&#xff08;有点类似于我们的成语“腰缠万贯”所描绘的画面&#xff09;。…

leetcode刷题日记:141. Linked List Cycle(环形链表)

这一题是给我们一个链表让我们判断这是否是一个环形链表&#xff0c;我们知道如果一个链表中有环的话这一个链表是没有办法访问到尾的&#xff0c; 假若有如图所示的带环链表&#xff1a; 我们从图示中很容易看出来这一个链表在访问的时候会在里面转圈&#xff0c;我们再来看看…

面试鸭 - 专注于面试刷题的网站

网上面试题有很多&#xff0c;但此套面试题真实、原创、高频&#xff0c;全网最强。 题目涵盖大中小公司&#xff0c;真实靠谱&#xff0c;有频率和难度的标记&#xff0c;助你成为Offer收割机。 面试鸭地址&#xff1a;https://mianshiya.skyofit.com/ 本套题是我原创&…

浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任意文件上传漏洞复现 [附POC]

文章目录 浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任…

故障发现、定位提效超 70%,去哪儿可观测体系做了哪些优化?

一分钟精华速览 去哪儿网的原有监控系统在指标数量上展现出了强大实力——上亿指标量和百万级的告警量&#xff0c;但在故障数据方面却稍显不足——订单类故障平均发现时间长达 4 分钟&#xff0c;仅有 20%的订单类故障能在 1 分钟内被发现&#xff0c;近半数的故障处理时长超…