贝壳第三题思路求解

这个思路为什么会只过10%呢,想了半天也想不出来,求大佬指教

 public static long section (int[] a, int t) {
        if(t==0) return 0;
        return subSection(a,t,0,a.length-1);
    }



    public static long subSection(int[] nums,int t,int left,int right){
        if(left>right) return 0;
        if(left==right) return 0;

        HashMap<Integer,Integer> valueIndexMap =new HashMap<>();

        for (int i = left; i <= right; i++) {
            if(valueIndexMap.containsKey(nums[i])){
                int index0 = valueIndexMap.get(nums[i]);
                int index1 = i;
                return subSection(nums,t,left,index1-1)+subSection(nums,t,index0+1,right);
            }
            valueIndexMap.put(t^nums[i],i);
        }
        //没有找到任何亦或
        long size = right-left+1;
        //(k-1)+...+2+1 =  k(k-1)/2
        return size*(size-1)/2;



    }



#贝壳笔试##贝壳找房##笔试题目#
全部评论
我也是
点赞 回复 分享
发布于 2021-08-20 15:26

相关推荐

lxylxy_:其实是美团卷起来了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务