【华为OD:C++机试】Day-1

目录

🌷1. 统计监控、需要打开多少监控器:

🌷2. 阿里巴巴找黄金宝箱:

🌷3. 事件推送:

🌷4. 分苹果:

🌷5. 乱序整数序列两数之和绝对值最小:

🌷6.卡片组成的最大数字:

🌷7.找最小数:

🌷8.身高排序:

🌷9.出错的或电路:

🌷10.磁盘容量:



🌷1. 统计监控、需要打开多少监控器:

题目描述:

思路:

 将地图先进行存储,遍历地图,如果是1直接++,如果是0,判断四周如果是1直接++,然后break,如果在此不break则会出现多算的情况;

 code: 

// 统计监控的个数
#include <iostream>
using namespace std;int m, n;
int grid[20][20];int dx[4] = { -1, 0, 1, 0 };
int dy[4] = { 0, 1, 0, -1 };int main()
{// 用于存储地图cin >> m >> n;for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){cin >> grid[i][j];}}int ans = 0;for (int row = 0; row < m; row++){for (int col = 0; col < n; col++){if (grid[row][col] == 1){ans++;}else{for (int i = 0; i < 4; i++){int x = row + dx[i];int y = col + dy[i];if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == 1){ans++;break;}}}}}cout << ans;return 0;
}

🌷2. 阿里巴巴找黄金宝箱:

题目描述:

code:

// 阿里巴巴寻宝箱
#include <iostream>
#include <string>
#include <vector>using namespace std;int main()
{string str;cin >> str;int pos = 0;vector<int> v;while ((pos = str.find(',')) != str.npos){v.push_back(stoi(str.substr(0, pos)));str.erase(0, pos + 1);}v.push_back(stoi(str));int leftsum = 0, rightsum = 0;for (auto e : v)rightsum += e;for (int i = 0; i < v.size(); i++){rightsum -= v[i];if (leftsum == rightsum){cout << i;return 0;}leftsum += v[i];}cout << -1;return 0;
}

🌷3. 事件推送:

题目描述:

code:

// 事件推送
#include <iostream>
#include <vector>
using namespace std;void sloveMathod(int R, const vector<int>& a, const vector<int>& b)
{int index = 0;vector<vector<int>> list;for (int i = 0; i < a.size(); i++){vector<int> input(2);while (index < b.size()){if (a[i] <= b[index] && b[index] - a[i] <= R){input[0] = a[i];input[1] = b[index];list.push_back(input);break;}index++;}}for (const auto& e : list)cout << e[0] << " " << e[1] << endl;
}int main()
{int m, n, R;cin >> m >> n >> R;vector<int> a(m);vector<int> b(n);for (auto& e : a) cin >> e;for (auto& e : b) cin >> e;sloveMathod(R, a, b);return 0;
}

🌷4. 分苹果:

题目描述:

code:

// 分苹果
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>using namespace std;void solveMethod(string line)
{// 将苹果的重量以整形的方式读入数组中stringstream ss(line);vector<int> nums;int n;while (ss >> n){nums.push_back(n);}sort(nums.begin(), nums.end());int max_num = -1;for (int i = 1; i < nums.size() - 1; i++){int left_bin = 0;int right_bin = 0;int left_sum = 0;int right_sum = 0;for (int j = 0; j < i; j++){left_bin ^= nums[j];left_sum += nums[j];}for (int j = i; j < nums.size(); j++){right_bin ^= nums[j];right_sum += nums[j];}if (left_bin == right_bin){max_num = max(max(left_sum, max_num), right_sum);}}cout << max_num << endl;
}int main()
{// 读入苹果的个数int N;cin >> N;cin.ignore();// 读入各苹果的重量string line;getline(cin, line);solveMethod(line);return 0;
}

🌷5. 乱序整数序列两数之和绝对值最小:

题目描述:

code:

// 乱序整数序列两数之和绝对值最小
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>using namespace std;void solveMethod(string line)
{// 将数据全部存入之nums数组中stringstream ss(line);int n;vector<int> nums;while (ss >> n)nums.push_back(n);sort(nums.begin(), nums.end());nums.erase(unique(nums.begin(), nums.end()), nums.end());int min = INT_MAX;vector<int> ans(2);for (int i = 0; i < nums.size(); i++){for (int j = 0; j < nums.size(); j++){int a = nums[i];int b = nums[j];int sum = abs(a + b);if (sum < min && a != b){min = sum;ans[0] = a;ans[1] = b;}}}if (!ans.empty()){cout << ans[0] << " " << ans[1] << " " << min << endl;}
}int main()
{string line;getline(cin, line);solveMethod(line);return 0;
}

🌷6.卡片组成的最大数字:

题目描述:

code:

// 卡片组成的最大数字
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>using namespace std;bool cmp(const string& s1, const string& s2)
{return s1 + s2 > s2 + s1;
}int main()
{string line;getline(cin, line);// 将输入的数存储在数组nums中vector<string> nums;string card;for (int i = 0; i < line.size(); i++){if (line[i] == ','){nums.push_back(card);card.clear();}else{card += line[i];}}nums.push_back(card);sort(nums.begin(), nums.end(), cmp);string ans;for (auto& s : nums)ans += s;cout << ans << endl;return 0;
}

🌷7.找最小数:

题目描述:

code:

// 找最小数
#include <iostream>
#include <string>
#include <stack>using namespace std;int main()
{string str;cin >> str;int n;cin >> n;stack<char> st;for (int i = 0; i < str.size(); i++){while (n > 0 && !st.empty() && st.top() > str[i]){st.pop();n--;}st.push(str[i]);}string ans;while (!st.empty()){ans = st.top() + ans;st.pop();}cout << ans << endl;return 0;
}

🌷8.身高排序:

题目描述:

code:

// 身高排序
#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main()
{int tall, n;cin >> tall >> n;vector<pair<int, int>> talls(n);for (int i = 0; i < n; i++){int t;cin >> t;talls[i] = { abs(tall - t),t };}sort(talls.begin(), talls.end());for (auto e : talls){cout << e.second << " ";}return 0;
}

🌷9.出错的或电路:

题目描述:

code:

// 出错的或电路
#include <iostream>
#include <string>using namespace std;int count_the_number(const string& str, const char& ch)
{int count = 0;for (auto& e : str){if (e == ch)count++;}return count;
}int count_num(int n, const string& str1, const string& str2)
{int count = 0;for (int i = 0; i < n; i++){if (str1[i] == '1' && str2[i] == '0')count++;}return count;
}int main()
{int n;string str1, str2;cin >> n >> str1 >> str2;int count1 = count_the_number(str1, '1');int count2 = count_the_number(str2, '0');int count = count_num(n, str1, str2);int ans = (count1 - count) * (count2 - count) + (n - count1) * count;cout << ans << endl;return 0;
}

🌷10.磁盘容量:

题目描述:

code:

// 磁盘容量
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>using namespace std;int convert(const string& str)
{int sum = 0;string s = str;int pos = 0;while ((pos = s.find_first_of("MGT")) != string::npos){string  substr = s.substr(0, pos);int size = stoi(substr);switch (s[pos]){case 'M':sum += size;break;case 'G':sum += size * 1024;break;case 'T':sum += size * 1024 * 1024;break;default:break;}s = s.substr(pos + 1);pos = 0;}return sum;
}bool compare(const string& str1, const string& str2)
{return convert(str1) < convert(str2);
}int main()
{int n;cin >> n;vector<string> capacity(n);for (auto& e : capacity)cin >> e;sort(capacity.begin(), capacity.end(), compare);for (const auto& e : capacity)cout << e << endl;return 0;
}

坚持打卡!😃

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

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

相关文章

JDK项目分析的经验分享

基本类型的包装类(Character放在最后) String、StringBuffer、StringBuilder、StringJoiner、StringTokenizer(补充正则表达式的知识) CharacterIterator、StringCharacterIterator、CharsetProvider、CharsetEncoder、CharsetDecoder(较难) java.util.function下的函数表…

koa搭建服务器(二)

在上一篇文章已经成功的运行了一个http服务器&#xff0c;接下来就是使用Sequelize ORM&#xff08;官方文档&#xff1a;Sequelize 简介 | Sequelize中文文档 | Sequelize中文网&#xff09;来操作数据库。 1、安装依赖 首先也是需要安装相关的依赖 npm i sequelize npm i …

计算机网络——物理层

目录 一、物理层的基本概念 &#xff08;一&#xff09;四大特征 &#xff08;二&#xff09;两种信号 &#xff08;三&#xff09;调制和编码 &#xff08;四&#xff09;传输介质 1. 双绞线 &#xff08;1&#xff09;屏蔽双绞线 STP &#xff08;2&#xff09;非屏蔽…

Go学习第十三章——Gin入门与路由

Go web框架——Gin入门与路由 1 Gin框架介绍1.1 基础介绍1.2 安装Gin1.3 快速使用 2 路由2.1 基本路由GET请求POST请求 2.2 路由参数2.3 路由分组基本分组带中间件的分组 2.4 重定向 1 Gin框架介绍 github链接&#xff1a;https://github.com/gin-gonic/gin 中文文档&#xf…

基础课13——数据异常处理

数据异常是指数据不符合预期或不符合常识的情况。数据异常可能会导致数据分析结果不准确&#xff0c;甚至是错误&#xff0c;因此在进行数据分析之前需要对数据进行清洗和验证。 常见的数据异常包括缺失值、重复值、异常值等。 缺失值是指数据中存在未知值或未定义的值&#…

详解类生到死的来龙去脉

类生命周期和加载过程 一个类在 JVM 里的生命周期有 7 个阶段&#xff0c;分别是加载&#xff08;Loading&#xff09;、校验&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Ini…

前端 :用HTML , CSS ,JS 做一个秒表

1.HTML&#xff1a; <body><div id "content"><div id "top"><div id"time">00:00:000</div></div><div id "bottom"><div id "btn_start">开始</div><div …

网络协议--TCP的保活定时器

23.1 引言 许多TCP/IP的初学者会很惊奇地发现可以没有任何数据流通过一个空闲的TCP连接。也就是说&#xff0c;如果TCP连接的双方都没有向对方发送数据&#xff0c;则在两个TCP模块之间不交换任何信息。例如&#xff0c;没有可以在其他网络协议中发现的轮询。这意味着我们可以…

【计算机网络】数据链路层——以太网

文章目录 前言什么是以太网以太网帧格式6位目的地址和源地址2位类型数据长度CRC 校验和 数据在数据链路层是如何转发的 前言 前面我们学习了关于应用层——自定义协议、传输层——UDP、TCP协议、网络层——IP协议&#xff0c;今天我将为大家分享关于数据链路层——以太网方面的…

【机器学习】决策树与分类案例分析

决策树与分类案例分析 文章目录 决策树与分类案例分析1. 认识决策树2. 分类3. 决策树的划分依据4. 决策树API5. 案例&#xff1a;鸢尾花分类6. 决策树可视化7. 总结 1. 认识决策树 决策树思想的来源非常朴素&#xff0c;程序设计中的条件分支结构就是if-else结构&#xff0c;最…

【蓝桥每日一题]-前缀和与差分(保姆级教程 篇3)#涂国旗 #重新排序

目录 题目&#xff1a;涂国旗 思路&#xff1a; 题目&#xff1a;重新排序 思路&#xff1a; 题目&#xff1a;涂国旗 思路&#xff1a; 乍一看好像没啥思路&#xff0c;但是我们需要涂最少的格子&#xff0c;所以要都尝试一下才行&#xff0c;也就是从上面开始白至少一行&am…

python自动化测试(七):鼠标事件

前置条件&#xff1a; 本地部署&#xff1a;ECShop的版本是3.0.0、Google版本是 Google Chrome65.0.3325.162 (正式版本) &#xff08;32 位&#xff09; py的selenium版本是3.11.0 目录 一、前置代码 二、ActionChains类 三、鼠标事件 3.1 悬停事件 3.2 左键单击 3…

python爬虫之正则表达式解析实战

文章目录 1. 图片爬取流程分析2. 实现代码—爬取家常菜图片 1. 图片爬取流程分析 先获取网址&#xff0c;URL&#xff1a;https://www.xiachufang.com/category/40076/ 定位想要爬取的内容使用正则表达式爬取导入模块指定URLUA伪装&#xff08;模拟浏览器&#xff09;发起请求…

scratch图书的ISBN码校验 2023年9月中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析

目录 scratch图书的ISBN码校验 一、题目要求 1、准备工作 2、功能实现 二、案例分析

LED数码管的静态显示与动态显示(Keil+Proteus)

前言 就是今天看了一下书上的单片机实验&#xff0c;发现很多的器件在Proteus中都不知道怎么去查找&#xff0c;然后想做一下这个实验&#xff0c;尝试能不能实现&#xff0c;LED数码管的两个还可以实现&#xff0c;但是用LED点阵显示器的时候他那个网络标号不知道是什么情况&…

基于UDP/TCP的网络通信编程实现

小王学习录 今日鸡汤Socket套接字基于UDP来实现一个网络通信程序DatagramSocket类DatagramPacket类基于UDP的服务器端代码基于UDP的客户端代码基于TCP来实现一个网络通信程序ServerSocket类Socket类基于TCP的服务器端代码基于TCP的客户端代码优化之后的服务器端代码补充TCP长短…

【MyBatis Plus】初识 MyBatis Plus,在 Spring Boot 项目中集成 MyBatis Plus,理解常用注解以及常见配置

文章目录 一、初识 MyBatis Plus1.1 MyBatis Plus 是什么1.2 MyBatis Plus 和 MyBatis 的区别 二、在 Spring Boot 项目中集成 MyBatis Plus2.1 环境准备2.2 引入 MyBatis Plus 依赖2.3 定义 Mapper2.4 测试 MyBatis Plus 的使用 三、MyBatis Plus 常用注解3.1 为什么需要注解3…

rust 创建多线程web server

创建一个 http server&#xff0c;处理 http 请求。 创建一个单线程的 web 服务 web server 中主要的两个协议是 http 和 tcp。tcp 是底层协议&#xff0c;http 是构建在 tcp 之上的。 通过std::net库创建一个 tcp 连接的监听对象&#xff0c;监听地址为127.0.0.1:8080. us…

css文字竖向排列

div { writing-mode: vertical-rl;text-orientation: upright;font-size: .25rem; //文字大小letter-spacing: 0.1em; //文字间距}

常用第三方库

Moment GTC(Greenwish Mean Time)&#xff1a;格林威治时间&#xff0c;太阳时&#xff0c;精确到毫秒UTC(Universal Time Coodinated)&#xff1a;世界协调时间&#xff0c;原子种计时&#xff0c;精确到纳秒 GTC和UTC都是以0时区作为标准时间戳&#xff1a;以UTC的1970-1-1 …