奇安信 Java AC 2

难道有一次AC了,我也把我丑陋的代码,贴出来一下!!
第一题
public class Main {
	// 键为pid value为其父类
	static Map<String, String> map;
	// 确认是不是目标值子类
	public static boolean getMaster(String key, String val) {
		String ss = map.get(key);
		if (key.equals(val))
			return true;
		if (ss == null) {
			return false;
		}
		if (ss.equals(val))
			return true;

		return getMaster(ss, val);
	}

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String firstStr = in.nextLine();
		String secondStr = in.nextLine();
		String arr[] = firstStr.split(" ");
		String ppid[] = secondStr.split(" ");
		int target = in.nextInt();
		map = new HashMap();
		for (int i = 0; i < arr.length; i++) {
			map.put(arr[i], ppid[i]);
		}
		String val = new String().valueOf(target);
		int res = 0;
		for (int i = 0; i < arr.length; i++) {
			if (getMaster(arr[i], val))
				res++;
		}
		System.out.println(res);

	}
}
第二题
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main2 {
	//寻找两个值不望同一个方向走的节点值
	
	static int n;//树的节点个数
   public static Integer findRes(Map map ,int key1,int key2,int index,int [] arr) {
	   if(index>n) return -1;
	   if(key1<arr[index]&&key2<arr[index]) {//往左
		  return  findRes(map,key1,key2,index*2+1,arr);
	   }
	   if(key1>arr[index]&&key2>arr[index]) {
			  return  findRes(map,key1,key2,index*2+2,arr);
		   }
	   
	   return arr[index];
   }
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int depth=in.nextInt();
		 n=(int) Math.pow(2, depth)-1;
		int [] arr=new int[n];
		Map<Integer,Integer> map=new HashMap();
		//将数据存入map
		//从根节点开始 比较 看这两个值是否往同一个方向走
		//如果是继续往左或往右走(当前index*2+1  index*2+2)
		//如果不是 记录 这个节点res 然后 如果这两个节点可以在查找到,返回res  如果不存在 返回-1
		for(int i=0;i<n;i++) {
			arr[i]=in.nextInt();
			map.put(arr[i], i);
		}
		int key1=in.nextInt();
		int key2=in.nextInt();
		//找到根节点
		int res=findRes(map,key1,key2,0,arr);
	     if(map.containsKey(key1)&&map.containsKey(key2)) {
	    	 System.out.println(res);
	     }else {
	    	 System.out.println(-1);
	     }

	}

}



#笔试题目##Java工程师##奇安信#
全部评论
老哥,感觉第二题map没用啊
点赞 回复
分享
发布于 2019-09-10 08:31
求问这批笔试的开始面试了么
点赞 回复
分享
发布于 2019-09-13 08:39
滴滴
校招火热招聘中
官网直投

相关推荐

3 7 评论
分享
牛客网
牛客企业服务