关注
第二题输入其实是按层遍历。。 剑指offer上的题 public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String in = sc.nextLine();
String target = sc.nextLine();
String[] items = in.split(",");
System.out.println(Arrays.toString(items));
int index = 0;
for (int i = 1; i <= items.length; i++) {
if(items[i-1].equals(target))
index = i;
}
if(index == 0) {System.out.println(-1);return;}
// 有右子树
if(index * 2 + 1 <= items.length){
// 找右子树的最左
int left = index * 2 + 1;
while(left * 2 <= items.length){
left *= 2;
}
System.out.println(left);
return;
}else{ //梅子树 在判断
if(index == 1){
System.out.println(-1);return;
}
while(index != 1) {
int p = findP(index);
if (isLeft(index)) { //当前是父节点的左
System.out.println(p);
return;
} else { // 当前是父节点的right
index = p;
}
}
System.out.println(-1);
}
}
public static int findP(int index){
return index / 2;
}
public static boolean isLeft(int index){
if((index & 1) == 0)
return true;
return false;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
12146次浏览 160人参与
# 你的mentor是什么样的人? #
51101次浏览 720人参与
# 程序员找工作至少要刷多少题? #
20952次浏览 268人参与
# 我和mentor的爱恨情仇 #
106235次浏览 947人参与
# 论秋招对个人心气的改变 #
13099次浏览 180人参与
# 秋招落幕,你是He or Be #
54193次浏览 618人参与
# 为了减少AI幻觉,你注入过哪些设定? #
5886次浏览 178人参与
# 机械人避雷的岗位/公司 #
44056次浏览 307人参与
# 校招第一份工作你干了多久? #
136619次浏览 597人参与
# 设计人如何选offer #
189695次浏览 868人参与
# 职场上哪些行为很加分? #
322499次浏览 3600人参与
# 你的秋招进行到哪一步了 #
2530720次浏览 23253人参与
# 牛客AI体验站 #
7649次浏览 205人参与
# 机械人还在等华为开奖吗? #
312109次浏览 1582人参与
# 秋招投递记录 #
380886次浏览 3204人参与
# 我现在比当时_,你想录用我吗 #
9322次浏览 126人参与
# 12306一秒售罄,你抢到回家的票了吗? #
2287次浏览 52人参与
# 重来一次,我还会选择这个专业吗 #
411230次浏览 3898人参与
# 一张图晒一下你的AI员工 #
5684次浏览 128人参与
# 互联网公司评价 #
485884次浏览 4111人参与
