欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

腾讯社招笔试加面试

程序员文章站 2022-06-04 16:54:28
...

笔试(每题40分钟,不能调试!!!):

  1. 输出:
输入n,输出方阵,
n=5时如下
0   0   0   0   5   
0   0   0   6   4   
0   0   7   14  3
0   8   15  13  2
9   10  11  12  1

n=3时如下
0   0   3
0   4   2
5   6   1

始终调不对,望大佬解决,留下评论。

  1. 大整数减法
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# ***************************************************************************
#
# Copyright (c) 2017 ByteDance.com, Inc. All Rights Reserved
#
# *************************************************************************/
#
# @file main.py
#
# @author [email protected]
# @date   2018/5/12
#

num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

# a > b
def string_dec(a, b):
    length = max(len(a), len(b))

    # 1234567
    while (len(a) < length):  # 补位
        a = "0" + a
    # 0056778
    while (len(b) < length):  # 补位
        b = "0" + b

    arr_a = list(a)
    arr_b = list(b)

    i = length - 1
    while (i >= 0):  # 从后到头遍历

        sum = int(arr_a[i]) - int(arr_b[i])
        if sum < 0:  # 小于0,借位
            pos = i - 1
            while (arr_a[pos] == '0'):  # 0 -> 9
                arr_a[pos] == '9'
                pos = pos - 1
            arr_a[pos] = num[int(arr_a[pos]) - 1]
            sum = sum + 10
        else:
            # 大于0,足够减
            pass

        arr_a[i] = num[(sum % 10)]

        i = i - 1

    a = ''.join(arr_a)
    while (len(a) > 1 and a[0] == '0'):  # 去掉前缀0
        a = a[1:]
    return a

if __name__ == '__main__':
    a = '1334567'
    b = '56878'
    c = string_dec(a, b)
    print a,"-",b,"=",c

1面

  1. 工作经历,业务背景。
  2. 算法:如何获取数组最小k个数;数组如何取出两个数,他们的和为指定数值。
  3. 语言:Java HashMap 和ConcurrentHashMap
  4. 计算机网络:流量控制和拥塞控制
  5. 操作系统:select 和epoll 的区别
  6. golang 如何并发

2面

聊项目细节

3面

聊项目细节,多处涉及原理
算法题:一个偶数个元素组成的无序数组,如何挑选出1/2个元素,使得挑选出来的是最内聚的,内聚的定义:最大-最小的差值最小
sort 实现:https://blog.csdn.net/qq_35440678/article/details/80147601