[LeetCode] Distribute Candies 分糖果

Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribute these candies equally in number to brother and sister. Return the maximum number of kinds of candies the sister could gain.

Example 1:

Input: candies = [1,1,2,2,3,3]
Output: 3
Explanation:
There are three different kinds of candies (1, 2 and 3), and two candies for each kind.
Optimal distribution: The sister has candies [1,2,3] and the brother has candies [1,2,3], too.
The sister has three different kinds of candies.

Example 2:

Input: candies = [1,1,2,3]
Output: 2
Explanation: For example, the sister has candies [2,3] and the brother has candies [1,1].
The sister has two different kinds of candies, the brother has only one kind of candies.

Note:

  1. The length of the given array is in range [2, 10,000], and will be even.
  2. The number in given array is in range [-100,000, 100,000].

s

时间: 2024-10-03 21:41:36

[LeetCode] Distribute Candies 分糖果的相关文章

[LeetCode] Distribute Candies

Given an integer array with even length, where different numbers in this array represent different kinds of candies. Each number means one candy of the corresponding kind. You need to distribute these candies equally in number to brother and sister.

LeetCode之小孩分糖果

给定一群站好队的小孩并且按某项分值排名(姑且假设为年龄吧),年龄大的要比他身边年龄小的拿的糖要多,求怎么分配糖果使得分配的糖果数最少. 用一个数组从左到右再从右到左的遍历,向前遍历时若右边的比左边的大则其值为前一个糖果数+1,向后遍历时则判断如果比后面的小孩的年龄要大且糖果数比其还少则更改其糖果数为后面小孩分的糖果数+1. 具体描述代码: #include<iostream> #include<vector> using namespace std; int candy(vecto

LeetCode 1103. Distribute Candies to People (分糖果 II)

题目标签:Math 题目让我们分发糖果,分的糖果从1 开始依次增加,直到分完. for loop可以计数糖果的数量,直到糖果发完.但是还是要遍历array 给people 发糖,这里要用到 index = (本轮分糖果的量 % people 的人数)糖果的数量从0 开始计数,这样的话,index 就会一直重复遍历 array,具体看code. Java Solution: Runtime:  1ms, faster than 90.53% Memory Usage: 33.8 MB, less

[LeetCode] Candy (分糖果),时间复杂度O(n),空间复杂度为O(1),且只需遍历一次的实现

[LeetCode] Candy (分糖果),时间复杂度O(n),空间复杂度为O(1),且只需遍历一次的实现 原题: There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements: Each child must have at least

LeetCode——1103. 分糖果 II

排排坐,分糖果. 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友. 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果. 然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果. 重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果.注意,就算我们手中的剩下糖果数不

力扣——分糖果 II

排排坐,分糖果. 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友. 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果. 然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果. 重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果.注意,就算我们手中的剩下糖果数不

[最短路]2197 分糖果

题目描述 Description 童年的我们,将和朋友分享美好的事物作为自己的快乐.这天,C小朋友得到了Plenty of candies,将要把这些糖果分给要好的朋友们.已知糖果从一个人传给另一个人需要1 秒的时间,同一个小朋友不会重复接受糖果.由于糖果足够多,如果某时刻某小朋友接受了糖果,他会将糖果分成若干份,分给那些在他身旁且还没有得到糖果的小朋友们,而且自己会吃一些糖果.由于嘴馋,小朋友们等不及将糖果发完,会在得到糖果后边吃边发.每个小朋友从接受糖果到吃完糖果需要m秒的时间.那么,如果第

【蓝桥杯】PREV-32 分糖果

题目链接:http://lx.lanqiao.org/problem.page?gpid=T124 历届试题 分糖果 时间限制:1.0s   内存限制:256.0MB 问题描述 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子. 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数. 反复进行这个游戏,直到所有小朋友的糖果数都相同为止. 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果. 输入格

蓝桥-分糖果(算法训练)

1 /* 2 蓝桥-分糖果 3 测试通过 4 时间:2015-9-22 5 6 问题描述 7 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 8 9 每个小朋友都把自己的糖果分一半给左手边的孩子. 10 11 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数. 12 13 反复进行这个游戏,直到所有小朋友的糖果数都相同为止. 14 15 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果. 16 输入格式 17 程序首先读入一个整数N(