思路:
这里的手套数量是对应的,但是取手套的时候并不知道对应颜色放在哪,都是混着放的。
如果正常不考虑数量的情况下,只需要把一边的所有手套拿出来,另一边选一只即可。但是这道贪心算法题需要拿出最少的手套,需要得出最优解,无疑增加了难度。
所以想要拿出最小数量,那么一边的手套量应该是:总数-最小数+1,这样才能覆盖所有的手套可能。那么另一边只需要拿出一只就可以。
当遇到0只手套这样的情况,需要把另一边的手套都取出来。无论左手还是右手,都要取出另一边是0的手套,避免取到的手套正好是这只没有另一对的手套。
class Gloves {
public:
int findMinimum(int n, vector<int> left, vector<int> right) {
// write code here
int left_sum=0,left_min=INT_MAX;//可以把最小值设置成一个最大值