首页 新闻 会员 周边

一个笔试题

0
悬赏园豆:10 [已关闭问题]

有N个整型数组,第一个数组长度为1,第二个长度为2.....第N个长度为N,往数组里插入数,求这些数组中最大数所在的数组的最小值,如果有相同的最大值,则分别求出该数组的最小值。谢谢大家,或者大家给个思路也行

wayleynam的主页 wayleynam | 初学一级 | 园豆:190
提问于:2008-10-17 23:01
< >
分享
其他回答(2)
0

在插入时记录下最大值及其对应的数组ID,插入完后就知道哪个数组存在最大数。然后遍历这个数组找出最小值。再优化一些就是设计一个长度为N的数组用于记录每个数组的最小值,在插入时更新数组的最小值到这个长度为N的数组中,当确定存在最大值的数组后,直接到这个数组中找到其最小值。

eaglet | 园豆:17139 (专家六级) | 2008-10-18 06:16
0

遍历所有数组

将最大值所在的数组计入list

如果相同就在计入一个

出现比他大的就list就清楚从0开始

知道了所在数组以后

直接对数组求最小值

还有一种做法是在最大值出现的时候当即求出最小值

然后直到最后看能留下的最小值是那个

但是这2种方法是有效率上的差异的

如果第一种方法不能通过类似sql的索引找到定位到的最大值数组的位置

那么第一种就要连续遍历2次表

而第二种如果遍历表的项很多最大值更换频繁

那么每出现一次变换就要求一次最小值

那样也会拖速度。。。。

相对而言的

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2008-10-18 09:16
0

再造一个二维数组X[数组名][该数组最大值],将所有数组的数组名,及该数组的最大值经过FOR循环写入二维数组X中,再对X进行一次最大值提取,根据最大值获得数组名,然后根据数组名取最小值了,当然你还可以创建三维的,如X[数组名][数组最大值][数组最小值],下来就不用我再说了,自己试试吧。

| 园豆:770 (小虾三级) | 2008-10-18 10:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册