8.19华为笔试题目c++
别家的笔试总是做的很差,偏偏做华为的就有状态。。。
首先得感谢牛客的@当可乐遇上曼妥思贴出来的题目
1.
给你N行M列的人,他们是一个方阵。左上角是(0,0),右下角是(n-1, m-1),最外圈的人顺时针报数,当他们报的数个位是7并且十位是奇数,就选出来。外圈报完了内圈接着报,一直到所有人都报完,问最后选出来的是哪些。
要求是10<=n,m<=1000,如果输入不合法,那么就是返回空数组。
好像很多人卡在空数组的输出上了。
输入
10 10
输出
[[7,9],[1,1],[8,2],[7,5],[4,4]]
#include <iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<string>
using namespace std;bool isvalid(int count) {if (count % 10 == 7 && (count / 10) % 2 == 1)return true;else return false;
}
int main() {int m, n;cin >> m >> n;if (m <10 || n < 10 || n>1000 || m>1000) {cout << "[]";return 0;}vector<vector<int>> res;int up = 0, down = m - 1, left = 0, right = n - 1;int count = 0;while (up <= down && left <= right) {for (int i = left; i <= right; i++) {count++;if (isvalid(count))res.push_back({ up,i });}up++;for (int i = up; i <= down; i++) {count++;if (isvalid(count))res.push_back({ i,right });}right--;for (int i = right; i >= left; i--) {count++;if (isvalid(count))res.push_back({ down,i });}down--;for (int i = down; i >= up; i--) {count++;if (isvalid(count))res.push_back({ i,left });}left++;}cout << '[';for (int i = 0; i<res.size(); i++) {if (i == res.size() - 1)cout << '[' << res[i][0] << ',' << res[i][1] << ']';else cout << '[' << res[i][0] << ',' << res[i][1] << ']' << ',';}cout << ']';return 0;}
2.
给你N个节点,然后输入他们所在的高度,问最后的二叉树可以有几种,结果可能很大,对10^9+7 取模
输入
4 1 0 2 2
输出
2
例子
x
/
x
/
x x
或者
x
x
/
x x
写的很简陋,没全A,其实就是排列组合题,抽空看下通用写法,溢出太烦人了
#include <iostream>
#include<vector>
#include<algorithm>
#include<map>using namespace std;//排列组合问题
int cmn(long long m, long long n) {if (m == n)return 1;if (m - n<n) n = m - n;long long res = 1;while (m>0) {res *= m--;}while (n>0) {res /= n--;}return (int)(res % 1000000007);
}
int main() {int n;cin >> n;vector<int> nums(n, 0);map<int,int> statis;int temp;for (int i = 0; i<n; i++) {cin >> temp;nums[i] = temp;statis[temp]++;}sort(nums.begin(), nums.end());if (statis.rbegin()->first > statis.size()-1) {cout << 0 << endl;return 0;}int res = 1;auto preitr = statis.begin();if (preitr->second > 1 || preitr->second == 0) {cout << 0;return 0;}for (auto itr = statis.begin(); itr != statis.end(); itr++) {if (itr == statis.begin())continue;if (itr->second > 2 * preitr->second) {cout << 0;return 0;}res = (res*cmn(pow(2, preitr->second), itr->second)) % 100000007;preitr = itr;}cout << res;return 0;}
3.
现在有一个已经落下来了一些的俄罗斯方块,我们用一个字符串表示,分别代表每个位置上已经落了多少块了。比如2202,就是下图
现在,有一个新的俄罗斯方块要掉下来,它的描述也是类似的,
例如121,就是下图
掉下来的块,一定保证是上底对齐的,并且不会出现下图这种情况
然后众所周知,落下来以后,如果一行没有间断的话,那么这一行就能消掉了,上面的那些就会往下落。
掉下来的块不能旋转,可以左右平移,但不能超出边界,让你最后没有被消除的行数尽可能小,问你这个值是多大。
输入
2202
2
输出
0
如果你不把2放在原本的0处的话,那么现在的未消行数就是4
#include <iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<string>using namespace std;int main() {string frame;cin >> frame;string brick;cin >> brick;int n = frame.size(), m = brick.size();int len = n - m + 1;int res=99999;for (int i = 0; i<len; i++) {int minval = 99999, maxval = -99999;string cframe = frame;int l = 0;for (int j = i; j<i + m; j++) {cframe[j] += (brick[l++] - '0');}for (int k = 0; k<n; k++) {minval = min(minval, (int)cframe[k]);maxval = max(maxval, (int)cframe[k]);}res = min(res, maxval - minval);}cout << res;return 0;}
8.19华为笔试题目c++相关推荐
- C/C++ 华为笔试题目
目录 1.字符串最后一个单词 2.计算字符个数 3.排序与去重 4.字符串分割 5.进制转换 6.质数因子 7.取近似值 8.合并表记录 9.提取不重复的整数 10.字符个数统计 11.数字颠倒 12 ...
- 关于一道华为笔试题目考奈奎斯特频率相关的解析
题目内容 这道题目考察奈奎斯特采样频率相关 背景知识 香农采样定理 香农采样定理,又称奈奎斯特采样定理,是信息论,特别是通讯与信号处理学科中的一个重要基本结论.1924年奈奎斯特(Nyquist)就推 ...
- 旅行商问题(华为笔试蜜蜂采蜜问题)
旅行商问题是算法中比较难的一类题目,也是比较综合的题目之一,其变种的题目也非常灵活,应用场景非常广泛,前段时间在做华为笔试题目的时候,遇到了一个与旅行商问题相关的蜜蜂飞行采花粉问题: 题目大意是:一个 ...
- 【转载】旅行商问题(华为笔试蜜蜂采蜜问题)
本文转载链接: https://blog.csdn.net/qq_29592167/article/details/90243408 感谢来自Raintin_coder的分享 旅行商问题是算法中比较难 ...
- 数字 IC 设计、FPGA 设计秋招笔试题目、答案、解析(2)2021 华为海思(上)
引言 最近收到诸多粉丝的来信,要求出一版<数字 IC 设计.FPGA 设计秋招笔试题精讲>,于是,通过几天几夜的加班加点,终于出了这一版<2021 华为海思秋招笔试题目.答案.解析& ...
- 华为2018春招笔试题目 字节流解析与长整数相乘
基础知识杂烩: 字节也叫Byte,是计算机数据的基本存储单位, bit存储内容是0和1,bit是计算机中最小的储存单位 一个Byte是由8个bit组成,它是最小的可寻址单元 ,1个字节等于8位二进制. ...
- 华为c语言笔试形式,最新华为C语言笔试题目分享
最新华为C语言笔试题目分享 华为C语言笔试题目分享: 一.判断 1.有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0.() 2.int(*ptr)(),则ptr是一维数 ...
- 转:九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
分类: 05.MS 100' original 2012-09-13 12:38 108951人阅读 评论(346) 收藏 举报 目录(?)[+] 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试 ...
- 100条经典C++笔试题目及答案分享
100条经典C++笔试题目分享 一.C++与C差异(1-17) 二.数据类型.关键字(18-37) 三.C++面向对象的特性(38-61) 四.程序阅读题(62-89) 五.编程练习(90-100) ...
最新文章
- PNG透明兼容IE6的几种方法
- 线程执行者(十一)执行者分离任务的启动和结果的处理
- 修复Eclipse在Mac OSX下启动时卡住问题
- Linux操作系统下查找文件的几种方法
- 计算机科学导论 第4版,计算机科学导论.第4版
- SpringBoot 基础上传操作
- 流量管理的7大技术流派
- 计算机开机出现ROM,电脑无法开机提示exiting pxe rom的解决办法
- iOS 代码命名规范 及Android 代码命名规范(2)Android
- 百度开源的71款项目
- mysql查询不到的数据补0
- Matlab二元函数图像绘制
- Android控件绑定menu键
- 读书笔记-项目计划、进度与控制
- 深圳高新区发展专项计划管理办法(征求意见稿)
- 与泽风格--爱的季节
- Android练手小项目--仿72g赚吧App
- Pycharm创建项目“New environment using“与“Existing interpreter“的区别
- 【CSAPP】计算机系统知识点(新国立NUS课程,中文版)
- Vulkan spec 中文版 翻译基础版本切换
热门文章
- 自己制作的直流电机驱动器
- 小程序引入的echarts过大如何解决_在微信小程序中使用 ECharts
- js实现复仇者联盟点名器
- python 基于CQL操作neo4j数据库
- Debian10英语环境安装搜狗输入法
- 【动手学习pytorch笔记】28.机器翻译数据集
- Android系统移植与调试之-------build.prop文件详细赏析
- 人民币和美元兑换的编程python_python人民币和美元转换
- arm mali 天梯图_手机cpu天梯图2019年4月最新排行 手机处理器性能天梯图
- RJ45接头 和 RJ48接头的区别