iteye_13373 2008-09-09 20:46
浏览 269
已采纳

抢答题!!!

例如一个整型数组 int temp[] = {2,2,1,2,3,3,2}
其中2这个元素的个数大于了数组长度的一半,则称2为这个数组的“持重点”;
用程序算出给定这个数组的持重点是几,并返回它的所有下标;

[color=red][/color]
[b]问题补充:[/b]
怎么就会完全不明白呢?就拿这个数组来说,现在我们知道2是持重点,假如在不知道的情况下,让你求出来谁是持重点,并返回这个持重点的所有下标。
谁把程序写出来,我把仅有的积分全贡出去。

  • 写回答

4条回答 默认 最新

  • sptzone 2008-09-10 14:04
    关注

    [code="java"]import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;

    public class Test {

    public static void main(String[] args) {
        int temp[] = {2,2,1,2,3,3,2};
        int chiZhongDian = getChiZhongDian(temp);
    
        System.out.println("chiZhongDian:" + chiZhongDian);
    
        List appearList = getIndex(temp , chiZhongDian);
    
        System.out.println("index in Array:");
        for(Iterator itr = appearList.iterator();itr.hasNext();)
        {
            System.out.print(itr.next() + " ");
        }
    
    }
    
    public static List getIndex(int[] temp, int number)
    {
        List appearList = new ArrayList();
    
        for(int i = 0;i < temp.length;i ++)
        {
            if(temp[i] == number)
            {
                appearList.add(new Integer(i));
            }
        }
    
        return appearList;
    }
    
    public static int getChiZhongDian(int[] temp) {
        int size = temp.length;
    
        Map chiZhongDianMap = new HashMap();
        for (int i = 0; i < temp.length; i++) {
            if (chiZhongDianMap.get(new Integer(temp[i])) == null) {
                Integer eachCount = new Integer(1);
    
                chiZhongDianMap.put(new Integer(temp[i]), new Integer(1));
            } else {
                Integer eachCount = (Integer) chiZhongDianMap
                        .get(new Integer(temp[i]));
                eachCount = new Integer(eachCount.intValue() + 1);
                chiZhongDianMap.put(new Integer(temp[i]), eachCount);
            }
        }
    
        for(Iterator itr = chiZhongDianMap.keySet().iterator();itr.hasNext();)
        {
            Integer number = (Integer)itr.next();
            Integer eachCount = (Integer)chiZhongDianMap.get(number);
    
            if(eachCount.intValue() > (size / 2))
                return number.intValue();
        }
    
        throw new RuntimeException("Can not find ChiZhongDian");
    }
    

    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表