zoukankan      html  css  js  c++  java
  • leetcode 575. Distribute Candies

    leetcode575题目链接

    题意就是给定一个偶数个数的数组,然后其中的不同的数字代表不同的candy,把candy平均分给姐姐弟弟,就是分给两个人,求某个人最多可以获得几种类型的candy。

    思路:水。就是排序,然后遍历就好,用一个last来保存上一个是什么,每次遇到一个不同的candy,res++,同时other也++,因为每次遇到一个不同的,由于题意要平均,相当于每次每个不同的都要分半个给otherone,遇到一个相同的,other就--,就相当于相同的两个,一人一个。结果就是res-other/2,当然当other为负数的时候,就是重复的太多,res表示总共有多少个不同,这时直接取res就好。

     1 class Solution {
     2 public:
     3     int distributeCandies(vector<int>& candies) {
     4         sort(candies.begin(),candies.end());
     5         int res=0,last=-1,other=0,size=candies.size();
     6         for(int i=0;i<size;i++){
     7             if(last!=candies[i]){
     8                 last=candies[i];
     9                 res++;
    10                 other++;
    11             }
    12             else{
    13                 other--;
    14             }
    15         }
    16         return other>0?res-other/2:res;
    17     }
    18 };
  • 相关阅读:
    第一册:lesson 117.
    第一册:lesson 115.
    Map集合。
    第一册:lesson 113.
    第一册:lesson 111.
    泛型。
    EXT.NET初学
    LINQ查询
    后台调用前端JS
    数字与数组或者字符串里面的内容比较
  • 原文地址:https://www.cnblogs.com/weedboy/p/6830132.html
Copyright © 2011-2022 走看看