中位数红包

微信红包

http://www.nowcoder.com/questionTerminal/fbcf95ed620f42a88be24eb2cd57ec54

用Map或哈希来计数:

import java.util.*;

public class Gift {
        public int getValue(int[] gifts, int n) {
            Map<Integer, Integer> m = new HashMap<>();
            for(int i = 0; i < gifts.length; ++i){
                if(m.containsKey(gifts[i])){
                    m.put(gifts[i], m.get(gifts[i]) + 1);
                }else{
                    m.put(gifts[i], 1);
                }
                if(m.get(gifts[i]) > gifts.length/2){    //超过一半就返回
                    return gifts[i];
                }
            }
            return 0;
        }
}
全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务