浏览 3004 次
锁定老帖子 主题:轩辕互动面试题两道比较复杂的
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-26
最后修改:2009-02-27
刚去轩辕互动面试,linux下三道题 1个半小时的,两个15分钟的 下面是两道需要半个小时的题 1.平衡点问题 平衡点:比如int[] numbers = {1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点;假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点 要求:返回任何一个平衡点 public class Equity{ public static int equity(int[] numbers){ int total=0; for(int i=0;i<numbers.length;i++){ total+=numbers[i]; } int frontSum = 0; for(int i=0;i<numbers.length;i++){ int backSum = total - frontSum - numbers[i]; System.out.println(i + "------" + frontSum); System.out.println(i + "------" + backSum); if(frontSum == backSum) { return i; } frontSum += numbers[i]; } return -1; } } 支配点问题: 支配数:数组中某个元素出现的次数大于数组总数的一半时就成为支配数,其所在位序成为支配点;比如int[] a = {3,3,1,2,3};3为支配数,0,1,4分别为支配点; 要求:返回任何一个支配点 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Dominator { @SuppressWarnings("unchecked") public static int dominator(int[] a) { if(a == null || a.length == 0) return -1; List intList = new ArrayList(); for(int i=0; i<a.length; i++) { intList.add(a[i]); } System.out.println(intList); Collections.sort(intList); System.out.println(intList); int maxCount = 0; int maxCountElement = 0; int maxCountTemp = 0; int maxCountElementTemp = (Integer)intList.get(0); for(int i=0; i<intList.size(); i++) { if(intList.get(i).equals(maxCountElementTemp)) { maxCountTemp++; } else { if(maxCountTemp > maxCount) { maxCountElement = maxCountElementTemp; maxCount = maxCountTemp; } maxCountElementTemp = (Integer)intList.get(i); maxCountTemp = 1; } System.out.println(i + "---------" + maxCount); System.out.println(i + "---------" + maxCountElement); System.out.println(i + "---------" + maxCountTemp); System.out.println(i + "---------" + maxCountElementTemp); } if(maxCountTemp > maxCount) { maxCountElement = maxCountElementTemp; maxCount = maxCountTemp; } if(maxCount > a.length/2) { for(int i=0; i<a.length/2; i++) { if(a[i] == maxCountElement) { return i; } } } return -1; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |