String II为什么暴力只能过66%的数据

    public static int string2 (int k, String s) {
        char[] ch=s.toCharArray();
        Arrays.sort(ch);
        int max=0;
        for (int i = 0; i < 26; i++) {
            char t= (char) (i+'a');//26个字母
            max=Math.max(max,help(ch,t,k));//维护max
        }
        return max;
    }

    //26个字母分别求对应的最长相等子序列
    private static int help(char[] ch,char c,int k){
        int count=0;
        int temp=0;
        int sum=0;
        for (int i = 0; i < ch.length; i++) {
            temp=Math.abs(ch[i]-c);
            sum+=temp;//操作的次数
            if (sum > k) {//如果操作次数大于k了跳出循环
                break;
            }
            count++;//每次++
        }
        return count;
    }


谁知道怎么回事啊,感觉代码没问题,但是不能过全部数据

全部评论
排序应当在确定是哪一个字母(26)之后,按照距离的大小从小到大,不然就可能先计算操作次数的太大超过了k,实际上后面还有可以处理的
点赞 回复 分享
发布于 2020-12-04 23:20

相关推荐

昨天 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
肤浅的羊:谜语人能不能直说呀
投递字节跳动等公司10个岗位 > 非技术求职现状
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务