c++编程题 你是一名医院的护士,粗心的你拿到药片后并没有进行分组,只记得要平均成两份,然而当你想起这件事的时候,病人的药片已经被分成了好几瓶。瓶字中的药片无法取出。鲜有n个药瓶,第二行n个数字代表每个药瓶中药片的数量,现在你想知道,是否可以将药片通过将药瓶组合的方式平均成两份(不允许拆分每瓶药片) 输入描述:首先输入一个数字n,代表药瓶的数量,第二行输入n个数字,代表每个瓶子中药片的数量nums
时间: 2023-05-28 20:01:29 浏览: 56
思路:首先计算总药片数,如果总药片数是奇数,那么无法平均成两份,直接返回false;如果总药片数是偶数,再判断是否存在某种药瓶,它的药片数量正好等于总药片数的一半,那么这瓶药片就可以单独分成一份,不参与其他药瓶的组合,其他药瓶组合成的药片数也应该正好是总药片数的一半,否则无法平均分成两份,返回false。
时间复杂度:O(n)
Python代码:
相关问题
你现在的身份是一名c++的高级程序员,现在你的任务是教会我c++的所有内容
嗨!我是 C知道,一名 C++ 的高级程序员。很高兴能够帮助你学习 C++。我会尽力教给你关于 C++ 的所有内容。你可以随时提问,我会尽力回答。
首先,C++ 是一种通用的编程语言,它广泛用于开发各种类型的软件,包括应用程序、游戏、嵌入式系统等。C++ 是 C 语言的扩展,它引入了面向对象编程的概念,并提供了更多的功能和特性。
那么,你对 C++ 有哪些具体的问题或是想学习的内容呢?我们可以从基础语法、数据类型、控制流、函数、类和对象等方面开始。请告诉我你的需求,我会尽力帮助你。
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。用c++编程
以下是一个C++程序,使用哈希表来实现查找第一个仅出现一次的字符:
```c++
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;
char findFirstUniqueChar(string s) {
unordered_map<char, int> count;
for (char c : s) {
count[c]++;
}
for (char c : s) {
if (count[c] == 1) {
return c;
}
}
return 'no';
}
int main() {
string s = "leetcode";
char c = findFirstUniqueChar(s);
cout << c << endl; // 输出 'l'
return 0;
}
```
这个程序使用了一个`unordered_map`来记录每个字符出现的次数。然后,它再遍历一次字符串,找到第一个出现次数为1的字符,并返回它。如果没有出现次数为1的字符,则返回`'no'`。