字节跳动笔试-过前三道,最后一道题目都没看明白。。。

第一道,刚开始也是只过了80%,最后要提交的时候灵机一动,题目说了肯定有答案,那么第一个肯定是答案。。。然后就全A了。。。
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] time = new int[n][2];
        int[] times = new int[n];
        for (int i = 0; i < n; i++) {
            time[i][0] = sc.nextInt();
            time[i][1] = sc.nextInt();
            times[i] = 60 * time[i][0] + time[i][1];
        }
        int m = sc.nextInt();
        int hour = sc.nextInt();
        int minute = sc.nextInt();
        int startTime = 60 * hour + minute;
        for (int i = n - 1; i >= 0; i--) {
            if (times[i] + m <= startTime) {
                System.out.println(time[i][0] + " " + time[i][1]);
                return;
            }
        }
        System.out.println(time[0][0] + " " + time[0][1]);
    }
第二题,
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int X = sc.nextInt();
        String string = sc.next();
        if (X == 0) {
            System.out.println(string);
            return;
        }

        int[] num = new int[string.length()];
        for (int i = 0; i < string.length(); i++) {
            num[i] = string.charAt(i) - '0';
        }
        int[] ret = new int[N];
        ret[0] = num[0];

        for (int i = 1; i < N; i++) {
                        // 这个时候不是由X个数进行异或生成的
            if (i < X) {
                ret[i] = num[i] ^ num[i - 1];
            } else {
                int t = X - 1;
                int temp = num[i];
                while (t > 0) {
                    temp = temp ^ ret[i - t];
                    t--;
                }
                ret[i] = temp;
            }
        }
        for (int i = 0; i < N; i++) {
            System.out.print(ret[i]);
        }
        System.out.println("");
    }                


第三道题目,原型应该是LeetCode上分糖果的题目,
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] array = new int[n];
        for (int i = 0; i < n; i++) {
            array[i] = sc.nextInt();
        }
        if (n == 0) {
            System.out.println(0);
        }
        if (n == 1) {
            System.out.println(100);
        }
        int result = f(array, n);
        System.out.println(result);
    }

    public static int f(int[] array, int n) {
        int nums[] = new int[n];
        nums[0] = 1;
        for (int i = 1; i < n; i++) {
            if (array[i] > array[i - 1]) {
                nums[i] = nums[i - 1] + 1;
            } else {
                nums[i] = 1;
            }
        }
        for (int i = n - 2; i >= 0; i--) {
            if (array[i] > array[i + 1] && nums[i] <= nums[i + 1]) {
                nums[i] = nums[i + 1] + 1;
            }
        }
        int count = 0;
        for (int i = 0; i < n; i++) {
            count += nums[i];
        }
        return count * 100;
    }

最后一道,题目都没看明白,感觉题目也说的不清楚,求大佬说说第四题。

#字节跳动##笔试题目#
全部评论
求个题啊
点赞 回复 分享
发布于 2019-08-11 22:45
同A三道
点赞 回复 分享
发布于 2019-08-11 22:41
请问,第三题的测试用例有说1 2 2的情况怎么处理么?
点赞 回复 分享
发布于 2019-08-11 22:19
第一题好机智呀
点赞 回复 分享
发布于 2019-08-11 22:14
大佬,第二题是怎么做的😂  可以讲讲吗
点赞 回复 分享
发布于 2019-08-11 22:06
最后一题就对了10%, 感觉它的意思像是数轴上找长度%3 = 0,1,2的线段的长度和? 求大佬解答
点赞 回复 分享
发布于 2019-08-11 22:01
好机智😂
点赞 回复 分享
发布于 2019-08-11 21:21
代码比较乱
点赞 回复 分享
发布于 2019-08-11 21:20

相关推荐

感觉他们一点都不了解现在这个社会就业有多难,已经在牛客刷到好多篇&nbsp;延毕的帖子了,延毕就会导致已经找好的工作就没了,还得重新再找,学校和老师们是怎么想的呢????看到学生丢失工作会开心吗&nbsp;就业数据都在造假,真实的就业困难不去解决&nbsp;一个个真是好样的
从明天开始狠狠卷JV...:学生看到的是导师不放实习导致offer黄了。 导师看到的是招进来的学生吃自己补助和自己的招生名额,却没给自己升迁带来任何帮助,还要跑路。 根本利益的不一致,最主要留校的导师大概率是职场上招聘失败的,被迫留校的,什么牛鬼蛇神都会有
点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
05-22 09:23
门头沟学院 Java
点赞 评论 收藏
分享
评论
3
16
分享

创作者周榜

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