oppo多媒体开发工程师(C++)笔试编程题
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
《嵌入式软件笔试-2024年真题汇总》:https://blog.nowcoder.net/zhuanlan/04yYym
第一题
小o有三盒糖果,糖果数分别为a,b和c。
现在小0又有了x颗糖果,他要把这x颗糖果恰好分到新的k个盒子里面去,保证每一个盒子里至少有一颗糖果。这样他就拥有了k+3盒糖果,然后他会在这k+3盒糖果中挑选出最多的那一盒糖果。
显然,x颗糖果分到k个盒子里往往不止一种方案。小0想知道,无论他如何分配这x颗糖果,糖果最多的那一个盒子的编号是否确定目唯一。
输入描述
第一行输入三个整数 a,b和c(1<=a,b,c<=10^9)表示初始三盒糖果的个数。
第二行输入两个整数x和k(1<=k<=x<=10^9)代表小O新获得的糖果个数,和需要新放人糖果的盒子数。
输出描述
如果糖果最多的那一个盒子的编号确定且唯一,输出“YES”,否则,输出“NO”。
示例
输入
423 22
输出
YES
#include <iostream> #include <vector> #include <algorithm> int main() { vector<int> arr; string input_line; getline(std::cin, input_line); istringstream iss(input_line); int num; while (iss >> num) { arr.push_back(num); } int x, k; cin >> x >> k; int max_value = *std::max_element(arr.begin(), arr.end()); // 判断条件并输出结果 if (max_value > 1 + x - k) { cout << "Yes" << std::endl; } else { cout << "No" << std::endl; } return 0; }
第二题
小o有两个长度为n的数组,现在她想从这两个数组中分别选出一个非空子序列,使得从第一个数组中选出的子序列的最大值不大于从第二个数组中选出的子序列的最小值。
小o想知道两个子序列的长度之和最大是多少。
如果数组a可以通过删除数组b中的若干(可能为零或全部)元素得到,则数组 a是数组b的子序列。
输入描述
第一行输入一个整数n(l<=n<=10^5)代表数组的长度。
第二行输入几个整数a1,a2,...,an(1<=ai<=10^9)代表第一个数组。
第三行输入几个整数b1,b2,…,bn(1<=bi<=10^9)代表第二个数组。
输出描述
在一行上输出一个整数,表示两个子序列的
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布2024年(2025届)嵌入式软件开发相关岗位笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。