4.5 腾讯前端笔试编程题

除了第三题 都不保证一定AC 如果有问题 麻烦告诉我
第一题画画板
while(line = readline()) {
    line = line.split(" ");
    var n = parseInt(line[0]), 
        m = parseInt(line[1]),
        i = 0,
        j = 0,
        tmp = '',
        l = 0,
        k = 0,
        arr = [],
        counter = 0;

    for(i = 0; i < n; i++) {
        arr[i] = [];
        tmp = readline();
        arr[i] = tmp.split("");
    }
    // \对角线
    // 下三角 
    for(i = 0; i < n; i++) {
        l = i;
        k = 0;
        while(l < n && k < m) {
            if(arr[l][k] === 'Y' || arr[l][k] === 'G') {
                counter++;
                break;
            }
            l++;
            k++;
        }
    }
    // 上三角 
    for(j = 1; j < m; j++) {
        l = 0; 
        k = j;
        while(l < n && k < m) {
            if(arr[l][k] === 'Y' || arr[l][k] === 'G') {
                counter++;
                break;
            }
            l++;
            k++;
        }
    }

    // /对角线
    // 下三角
    for(i = 1; i < n; i++) {
        l = i;
        k = m-1;
        while(l < n && k >= 0) {
            if(arr[l][k] === 'B' || arr[l][k] === 'G') {
                counter++;
                break;
            }
            l++;
            k--;
        } 
    }
    // 上三角
    for(j = m-1; j >= 0; j--) { 
        l = 0;
        k = j;
        while(l < n && k >= 0) {
            if(arr[l][k] === 'B' || arr[l][k] === 'G') {
                counter++;
                break;
            }
            l++;
            k--;
        }
    }
    print(counter);
}

第二题 巧克力:
爸妈出差N天 总共给了M块巧克力, 保证巧克力可以一直吃到爸妈回来,且后一天吃的巧克力至少是前一天的一半
问:第一天最多可以吃多少?

while(line = readline()) {

    line = line.split(" ");
    var N = parseInt(line[0]), 
        M = parseInt(line[1]), 
        first = 1, 
        last = M;

    while(first + 1 < last) {
        var mid = parseInt(first + (last - first)/ 2); // 先确定查找区间的中间位置
        if(isSatisify(mid, N, M)) { // 符合要求 继续二分
            first = mid;
        } else {                    // 小于中间位置,向右半区间
            last = mid - 1;
        }
    }

    if(isSatisify(first + 1, N, M)) {
        print(first + 1);
    } else {
        print(first);
    }
}

function isSatisify(midkey, n, m) { // 判断midkey是否符合题目要求
    var res = midkey, i = 1;
    for(i = 1; i < n; i++) { // 表示天数,故i从1开始,因为已经存入第一个midkey,故只需要n-1天
        if(midkey == 1) {
           res += n - i; // 后面有多少天就需要多少巧克力,因为每天至少一块巧克力
           break; 
        } else {
            res += parseInt((midkey+1)/2);
            midkey = parseInt((midkey+1)/2)
        }
    }
    return res <= m;
}
第三题:抽数字
while(n = parseInt(readline())) {
    var line = readline();
    line = line.split(" ");
    for(var i = 0; i < n; i++) {
        line[i] = parseInt(line[i]);
    }
    line.sort(compare);

    var tmp1 = 0;
    for(i = 0; i < n; i = i+2) {
        tmp1 += arr[i]
    }
    var tmp2 = 0;
    for(i = 1; i < n; i = i+2) {
        tmp2 += arr[i]
    }
    print(tmp1-tmp2)
}
function compare(val1, val2) {
    return val2-val1;
}

#春招##实习##笔试题目##前端##腾讯#
全部评论
第二题是巧克力吗? import java.util.Scanner; /** public class Main4 {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int N = in.nextInt();         int M = in.nextInt();         int lo = 1, hi = M;         while (lo + 1 < hi) {             int mid = lo + (hi - lo) / 2;             if (isScatisfy(mid, N, M)) {                 lo = mid;             } else {                 hi = mid - 1;             }         }         if (isScatisfy(lo+1, N, M)) {             System.out.println(lo + 1);         } else {             System.out.println(lo);         }     }     public static boolean isScatisfy(int v, int N, int M) {         int ans = v;         for (int i = 1; i < N; i++) {             if (v == 1) {                 ans += N - i;                 break;             } else {                 ans += (v + 1) / 2;                 v = (v + 1) / 2;             }         }         return ans <= M;     } }
点赞 回复 分享
发布于 2018-04-08 18:12
6666666
点赞 回复 分享
发布于 2018-04-12 20:04

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
点赞 25 评论
分享
牛客网
牛客企业服务