空气质量等级c语言编程,字节跳动2018秋招编程题——空气质量
偶然在网上看到的编程题,感觉挺有意思的。但是没有在网上找到对应的题目和解析,所以没法测试算法的正确性,下面写一下思路,供大家参考,如果有纰漏之处还望指出。
关于不曾下降过的序列递增应该由如下方式组成:
【以a结尾的非严格递增序列】 * 1
【等于a的子序列】 * (t-2)
【不小于a的非严格递增序列】 * 1 可以用反证法证明上述情况成立。
具体解法如下:
#include
#include
#include
#include
using namespace std;
int forwardFun(vector &v, int num) //大于等于num的递增子序列长度
{
vector res;
for(int n : v)
{
if(n >= num)
{
if(res.empty())
res.push_back(n);
else
{
if(n >= res[res.size()-1])
res.push_back(n);
else
{
for(int i = 0; i < res.size() ; i++)
if(v[i] > n)
{
v[i] = n;
break;
}
}
}
}
}
return res.size();
}
int backFun(vector v, int num) // 以num结尾的非严格递增序列
{
reverse(v.begin(), v.end());
vector res;
for(int i = 0 ; i < v.size(); i++)
{
if(v[i] == num)
{
if(res.empty())
res.push_back(v[i]);
else
{
if(res[res.size()-1] != num)
for(int i = 0 ; i < res.size() ; i++)
{
if(res[i] < num)
{
res[i] = num;
break;
}
}
else
{
res.push_back(v[i]);
}
}
}
else if(v[i] < num)
{
if(res.empty())
continue;
if(v[i] <= res[res.size()-1])
{
res.push_back(v[i]);
}
else
for(int j = 0 ; j < res.size() ;j++)
{
if(res[i] < v[i])
{
res[i] = num;
break;
}
}
}
}
return res.size();
}
int main()
{
int n,t;
cin >> n >> t;
vector v(n),dp(n);
for(int i = 0 ; i < n;i++)
cin >> v[i];
unordered_map map,sameNum;
for(int i = n-1 ; i >= 0 ; i--)
{
if(map.count(v[i]) == 1)
{
sameNum[v[i]] += 1;
continue;
}
sameNum[v[i]] = 1;
int num = backFun(v, v[i]);
map[v[i]] = num;
}
int ans = 0;
for(auto it = map.begin(); it != map.end(); it++)
{
int num = it->second, tmp_res = 0;
int count = sameNum[it->first];
tmp_res = num + count * (t-2);
tmp_res += forwardFun(v, it->first);
an***ax(ans, tmp_res);
}
cout << ans << endl;
return 0;
}
空气质量等级c语言编程,字节跳动2018秋招编程题——空气质量相关推荐
- 2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案
2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案 1.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. ...
- 2018深信服java笔试题,深信服2018秋招编程题
深信服2018秋招编程题 深信服2018秋招编程题 第一题: 其中,reverse函数的代码实现如下: 1. unsigned int reverse(unsigned int num) { unsi ...
- 京东2018秋招编程题
C++开发工程师 京东 2018秋招编程题 (代码后续更新...) 1.神奇数 将一个数n的各数位分成两部分,两部分之和相等,则称这个数为神奇数.比如242分成[2,2].[4].输入一个范围[l, ...
- 滴滴2018秋招编程题
滴滴 2018秋招 编程题 1.寻找丑数 丑数的定义是,只包含因子2.3和5的数称作丑数.比如6和8是丑数,14不是丑数,因为含有因子7.输入一个整数n,输出第n个丑数.我们认为第一个丑数是1. 解析 ...
- 字节跳动2019春招算法题
字节跳动2019春招算法题 1.总结 难度:容易到中等. 一些题出的太烂,不给数据范围,而且内存设置有问题,如果是刷题不建议刷. 2.题目 (1) 简单字符串模拟. #include<bits/ ...
- 字节跳动-2020秋招-笔试题剖析【5道算法题】
字节跳动-2020秋招-笔试题剖析[5道算法题],限时120分钟. 让我们一起来看看这些题吧! 题一:模型文件去重 [题目描述] 抖音上不同的用户类型我们有不同的用户模型文件. 我们有一个模型配置文件 ...
- 今日头条2018秋招编程题
今日头条 2018秋招 Android方向 编程题 1.手串 作为一个手串艺人,有金主向你订购了一条包含n个杂色串珠的手串–每个串珠要么无色,要么涂了若干种颜色.为了使手串的色彩看起来不那么单调,金主 ...
- 【字节跳动】秋招/实习转正,总有一种方法适合你
秋招太难?实习转正也能加入字节跳动! 公司介绍: 成长环境: 秋招: ⚠️内推码:EJSDRMT 工作地点: 薪资福利: 招聘职位: 投递邮箱: 公司介绍: 字节跳动是全球增长最快的科技公司之一,月活 ...
- 字节跳动2020秋招研发笔试题
字节跳动秋招研发笔试题 最近在忙考研,高数复习完了,看了下数据结构和算法,然后对人生比较迷茫. 该不该放弃考研,又怕考不上面临找工作的问题,索性看了几家科技巨头的秋招试题,贴下来和大家分享下 基本都是 ...
- JS第二次授课及字节跳动2017秋招前端工程师笔试试卷涉及知识点
JS第二次授课 一.转义字符和字符串 1.在字符串中使用转义字符输入Unicode编码.语法:\u+四位编码. 2.在网页中使用Unicode编码:语法:&#编码:(注:这里的编码要使用十进制 ...
最新文章
- 为什么绩效管理如此重要?有哪些数字化绩效管理工具?
- [算法练习]Two Sum
- bootstrap3 商品列表_Bootstrap3基础 list-inline 无序列表横向显示
- 恒生证券期货行业用户维稳工作指引(一)
- dart系列之:手写Library,Library编写实践
- 点击area不出现黑框_30款厨房门,黑框?白框?你家选哪个合适?
- C++中如何定义动态数组
- ios 开发日记 21 -自动处理键盘事件的第三方库:IQKeyboardManager
- Kudu : 三种Fulsh Mode
- [转] 多线程 《深入浅出 Java Concurrency》目录
- fractal 分形维数 盒子维 纹理特征
- 性能分析工具Systrace的使用详解
- 基于I2C协议的AHT20温湿度传感器的数据采集及OLED屏显示
- 团队组成五个基本要素_团队构成的五大要素
- 网页制作html+css+javascript
- 第五章:量化研究专题(第四篇:统计套利:利用相关系数进行配对交易 )
- 通用技术金工工艺高考必考必看的知识点含攻丝与套丝讲解
- 北京的电竞学校的要求有哪些?
- Linux命令之ln -s命令(软链接)
- Cloud Hosted Notebook Showdown(云托管笔记本)
热门文章
- 因式分解理论基础(1)一元多项式
- oracle数据库统计信息的重要性
- Python3中使用flask_sqlalchemy的问题
- 一份完整的数据分析师成长书单
- 【计算机组成原理】CPU是什么
- c语言oct,【讨论】OCT扫描中的C-scan你知道吗????????
- webpack3:html-webpack-plugin 实现自动修改引入文件名
- java_232_GOF23设计模式_建造者模式详解_练习
- 美国卡尔顿学院计算机专业怎么样,美国顶尖学院卡尔顿学院
- 初创公司几个投资人,各占多少股份合适