牛客网---2016---腾讯微信红包
2017-09-03 17:22
239 查看
老实说,我TMD有点难受,周末本打算去火锅店把卡退了,老人家一个微信告诉我,4点左右实验室来个人,结果嘞,人到了5点我也没看到,啧啧,算了,没事,昨天和对象玩的很好,就很棒,无敌,图片不丢了,这种东西太辣眼睛了。。。另外啊,我今天的淘宝出问题了,还好又好了。。。
题目:
春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。
给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。
若没有金额超过总数的一半,返回0。
输入:
输出:
解析:
1 . 没什么重点,就是从左到右,找到目前为止最多的节点
解题所需函数:
代码:
题目:
春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。
给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。
若没有金额超过总数的一半,返回0。
输入:
[1,2,3,2,2],5
输出:
2
解析:
1 . 没什么重点,就是从左到右,找到目前为止最多的节点
解题所需函数:
代码:
import java.util.*; public class Gift { public int getValue(int[] gifts, int n) { // write code here if(gifts.length<n){ return 0; } if(gifts.length==0){ return 0; } int count=0,temp=0; // 用于确定截止到目前为止,出现数目最多的点,啧啧 for(int i=0; i<n; i++){ // 遍历所有数据 if(count==0){ // 确定临时函数 temp=gifts[i]; count=1; }else{ if(temp==gifts[i]){ count++; }else{ count--; } } } int size=0; for(int i=0; i<n; i++){ if(temp==gifts[i]){ size++; } } return (size>n/2)?temp:0; } }
相关文章推荐
- 牛客网----2016腾讯,,微信红包
- 微信红包(2016腾讯校招笔试题)
- 腾讯2016研发工程师编程题——微信红包
- 腾讯2016研发工程师编程题微信红包
- 腾讯2016研发工程师编程题(二)----微信红包
- 腾讯2016笔试题-微信红包-找出数组中过半数的数字
- 腾讯2016笔试题-微信红包-找出数组中过半数的数字
- 2016校招真题编程练习——微信红包(腾讯)
- 腾讯2016笔试题-微信红包-找出数组中过半数的数字
- 微信红包(腾讯2016研发工程师编程题)
- 算法与数据结构——算法题 21:微信红包(2016腾讯校招笔试题) ? 待解决
- 微信红包(数组中出现次数超过一半的数字)----腾讯2016研发工程师编程题
- 2016腾讯编程题:微信红包
- 名企笔试:腾讯2016招聘笔试(微信红包)
- 2016微信抢红包助手及源码
- 牛客网--腾讯2016,最长回文串
- 腾讯笔试题--微信红包
- 2016年春节腾讯手机QQ,微信,春晚支付宝抢红包时刻表分享
- 接上一篇腾讯2016年微信红包编程题
- 腾讯2016笔试题-红包