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 PFENet的预训练权重
  • ¥15 程序哪有错误怎么改?
  • ¥15 交换机和交换机之间的链路带宽以及主机带宽的理解
  • ¥15 ai创想家对战模式代码
  • ¥15 集合A由3个2行4列二维数组构成,从集合A中任意取一个二维数组元素、如果该二维数组元素的对应列位置的上、下两数都是奇数,而且仅有2个列是奇数/奇数,则该数组有意义,并放入集合B中打印输出。
  • ¥15 电信IPV6 无法外网访问吗
  • ¥15 有偿求效果比较好的遥感影像匹配的c++代码
  • ¥15 博主,你好,我下载了你的智能网联汽车辅助驾驶安全信息检测系统,现在不会运行,可以教我吗,
  • ¥15 怎么在excle输入下列公式
  • ¥15 Arduino,利用modbus的RS485协议,进行对外置的温湿度传感器进行数据读取