牛客编程巅峰赛S2第3场 - 青铜&白银&黄金

Tree VI

https://ac.nowcoder.com/acm/contest/9246/C

import java.util.*;
public class Solution {
    /**
     * 
     * @param k int整型 表示完全k叉树的叉数k
     * @param a int整型一维数组 表示这棵完全k叉树的Dfs遍历序列的结点编号
     * @return long长整型
     */
   public long tree6 (int k, int[] a) {
        int n =a.length;
        dfs(k,a,0);
        return res;
    }
    int dfsOrder =0;
    long res= 0;
    //使用bfs序来判断是否越界 ,bfs序可能超过int最大值,要用long
   private void dfs(int k, int[] a, long bfsOrder) {
        // TODO Auto-generated method stub
        if(dfsOrder>=a.length) return;
        int parent=a[dfsOrder];

        for(int i=1;i<=k;i++) {
            if(bfsOrder*k+i<a.length) {
                dfsOrder++;
                res=res+(parent^a[dfsOrder]);
                dfs(k, a, bfsOrder*k+i);
            }
            else
                break;
        }    
    }
}

用bfsOrder来判断是否有子树,dfsOrder来深度遍历

全部评论

相关推荐

在改简历的大卫很认真:天天有面试 = 你已经在 offer 门口了。 海投能面成这样,说明你的简历、基础、学历都是过关的,缺的只是一次刚好匹配的缘分。 关于你说的 SQL 恐惧,我帮你捋一下: - 面试里考来考去,真就那几类: 分组、去重、关联、子查询、窗口函数(row_number、rank、sum 开窗) ​ - 面试官要的不是“写得花里胡哨”,而是思路稳、不出错。 你恐惧的本质不是不会, 是怕临场卡壳、怕写错、怕被追问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务