WEB前端

牛客网腾讯前端笔试题

第一题画画板

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;}

牛客网腾讯前端笔试题

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注