首页 > 一面腾讯pcg凉经
头像
马丘
编辑于 2020-09-29 06:52
+ 关注

一面腾讯pcg凉经

一面腾讯pcg凉经
1. 上来撸项目,巴拉巴拉大半天,小哥哥非常耐心。听我罗里吧嗦的答了很多。
2. redis缓存穿透,分三个层面,最外层布隆过滤器,再往里使用缓存一些无效的key,(没答上来参数校验,鉴权什么的),穿透可能是因为大量的key同时过期,
就可以将数据过期的时间加上一个随机值
3. es搜索的流程。query和fetch操作
4. Lucene搜索的流程
5. Lucene 倒排索引结构
6. mysql 查询的比较慢,调优如何做
7. 跨域如何做的,后端如何处理
8. 输入baidu.com。每层上用什么协议
9.算法 九宫格实现。之前装逼说很简单,结果bug没调出来。尴尬脸。太惨。最后说了一下想法。
10. java多线程使用。线程池如何创建。
11. java如何解决死锁。(没答上来)
算法没做出来,估计是没戏了。🤣🤣🤣🤣
不得不说,腾讯面试官真的好。非常nice。说话温柔,不打断,还“请教一下,请问一下”。我爱了。
厚着脸皮祈求二面吧。 😊😊😊😊
调试完bug的代码放过来了吧。😂😂😂 大佬轻喷

package company.tencent;

public class NineBlock {
    private static int[][] ma = new int[3][3];
    private static int[] st = new int[10];

    public static void main(String[] args) {
        dfs(0, 0);
    }

    private static void dfs(int x, int y) {
        int xx = x, yy = y;
        if (y == 3) {
            xx += 1;
            yy = 0;
        }
        if (xx == 3) {
            if (check(ma)) {
                print(ma);
            }
            return;
        }

        for (int i = 1; i <= 9; i++) {
            if (st[i] == 0) {
                st[i] = 1;
                ma[xx][yy] = i;
                dfs(xx, yy + 1);
                st[i] = 0;
                ma[xx][yy] = 0;
            }
        }
    }

    private static boolean check(int[][] ma) {
        int[] colVal = new int[3];
        int[] rowVal = new int[3];
        int[] ancel = new int[2];

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                colVal[i] += ma[j][i];
            }
            if (colVal[i] != 15) return false;
        }
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                rowVal[i] += ma[i][j];
            }
            if (rowVal[i] != 15) return false;
        }

        ancel[0] = ma[0][2] + ma[1][1] + ma[2][0];
        ancel[1] = ma[0][0] + ma[1][1] + ma[2][2];
        for (int i = 0; i < 2; i++) {
            if (ancel[i] != 15) return false;
        }

        return true;
    }

    private static void print(int[][] ma) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print(ma[i][j] + " ");
            }
            System.out.println();
        }
    }

}


更多模拟面试

全部评论

(5) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐