575. Distribute Candies的C++解法
来源:互联网 发布:python turtle 库手册 编辑:程序博客网 时间:2024/06/05 02:46
最多一个人只能分到candies.size()/2的不同种类的糖,只要遍历数组保证每次拿的糖种类不重复就可以了。注意测试数据的边界,有负数和很大的数。
class Solution {public:int distributeCandies(vector<int>& candies) {int l = candies.size()/2;int result = 0;int i = 0;vector<int> mark;mark.resize(200001, 1);while ((result < l) && (i<l*2)){int a = candies[i]+100000;if (mark[a] < 0) i++;else {i++;result++; mark[a] = -mark[a];}}return result;}};
题解里用的是无序集合,用无序集合和candies.size()/2作比较,有两种方法,一种是手动遍历插入,一种是用迭代器新建:
class Solution {public: int distributeCandies(vector<int>& candies) { unordered_set<int> kinds; for (int kind : candies) { kinds.insert(kind); } return min(kinds.size(), candies.size() / 2); }};
class Solution {public: int distributeCandies(vector<int>& candies) { return min(unordered_set<int>(candies.begin(), candies.end()).size(), candies.size() / 2); }};
阅读全文
0 0
- 575. Distribute Candies的C++解法
- Distribute Candies问题及解法
- 575. Distribute Candies
- 575. Distribute Candies
- LeetCode | 575. Distribute Candies
- 575. Distribute Candies
- 575. Distribute Candies
- leetcode 575. Distribute Candies
- 575. Distribute Candies
- [LeetCode]575. Distribute Candies
- [leetcode]: 575. Distribute Candies
- 575. Distribute Candies
- 575. Distribute Candies
- [leetcode]575. Distribute Candies
- [easy]575. Distribute Candies
- LeetCode 575. Distribute Candies
- leetcode.575. Distribute Candies
- LeetCode 575. Distribute Candies
- java多线程买票,同步锁
- Gradle for Android 第一篇( 从 Gradle 和 AS 开始 )
- Enumation和Iterator的区别
- 在Linux下将PNG和JPG批量互转的四种方法
- 枚举类型,修改的问题
- 575. Distribute Candies的C++解法
- 说说下一代的报表设计器——Jaspersoft Studio
- oracle 中缩减 UNDOTBS01.DBF 释放磁盘空间
- PHP面试题宝典
- 根据数据动态创建radiobutton,默认选中第一个,并随点击切换碎片
- Android ListView详解
- WebService(2) JAX-WS、CXF、Spring3.0+
- 局域网部分电脑不能ping通
- liunx rabbitmq环境搭建