华为、字节跳动、腾讯等面试出现的编程题汇总

本帖记录今年春招以来我在牛客网上看到了各大公司面经里面出现的编程题,持续更新,欢迎补充

华为面试算法题汇总

  • Leetcode2 链表相加

  • 一个汽车工厂,实现工厂模式

  • leetcode最长公共前缀

  • 图的最短路径算法

  • 找出字符串第一次只出现一次的字符

  • 最大的连续1个个数
    在这里插入图片描述

  • 32位数据 按位进行调换
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l5x2t5d3-1583975066589)(media/15838835395253/15838837365146.jpg)]

  • 一面砖墙,画一条竖线,哪里画线穿过的砖块最少。

  • https://leetcode-cn.com/problems/house-robber/打家劫舍原题,条件改成相距为2及以下的不能一起偷。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cfo67kbX-1583975066591)(media/15838835395253/15839747623357.jpg)]

  • https://leetcode-cn.com/problems/number-of-islands/岛屿数量原题
    * [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6E6vI7Ox-1583975066591)(media/15838835395253/15839748268171.jpg)]
    * [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CjKRavXp-1583975066592)(media/15838835395253/15839748620297.jpg)]

  • target和数组返回三数之和为target

  • [0,1,0,2,2,0,0,1,12]
    将所有0移至数组末尾,不允许新开数组

  • 贪心求CPU运行时间

  • 给一组数,求数字左边比它大的数,之间的最小距离

  • 循环链表检测

  • 两个栈实现队列

  • 两个分数相加返回约分后的结果

  • 【手撕代码题目】找出字符串中第一个只出现一次的字符
    输入描述:输入一个非空字符串
    输出描述:输出第一个只出现一次的字符,如果不存在输出-1

  • 手撕代码 (找兄弟素数)

  • 最短路径 说说思路就行

  • 最小值栈

  • 在这里插入图片描述

  • 给了一个数组,让你把数组i到j之间的数加起来,然后让它在一个范围里,找到最长的子串,意思找到最长的符合条件的i到j

  • 一个数组中三个数乘起来的最大值并输出

  • 在这里插入图片描述

  • 输出序列最长连续序列

  • 完整实现一个双向链表,创建、插入、删除、查找

  • 最长上升子序列长度(nlogn)

  • 有序链表插入一个数之后依然有序

  • 括号匹配

  • 数组中的所有递增子序列

  • 迷宫给定字符串查找

  • two sum

  • 字符串最大连续子串

  • 输入4字节整型变量,分割成IP地址那样的8位8位

  • leetcode 石头碰撞

  • (int型数字反向输出)

  • leetcode Hard (最小覆盖字串)

机考题:

  • 90度翻转矩阵亲测可以用额外空间
  • 全排列问题需要剪枝(懒得剪了
  • 编译距离
  • Linux shell脚本中 x x x 代 表 变 量 x x x 的 值 , 给 定 一 个 字 符 串 中 存 在 一 个 或 多 个 {xxx}代表变量xxx的值,给定一个字符串中存在一个或多个 xxxxxx,{xxx},需要将字符串中所有的${xxx}替换成实际值.示例:
    输入:4 xxx=lyf
    说明:第一行4为输入总行数,其余为输入字符串,
    输出:/aaa/lyf/www/test/bbb/seeyou/ccc
    说明:将最后一行等号右边的实际值输出
  • 求最短采蜜路径距离
  • 流水线N个产品每个产品有M个零件,Aij表示生产该零件的生产时间
    需满足以下2个条件
    1. Aij需要生产出来必须保证Ai-1 j先生产出来
    2. Aij需要生产出来必须保证Ai j-1先生产出来
  • leetcode第一题
  • 实现一个基础栈,要求栈的所有功能,还要找出栈中最小值
  • 3.18 ip 地址和一个掩码地址,要求分别于掩码地址按位与,然后判断时候相等
  • 3.18 leetcode 221最大正方形
  • 3.25 华为机试0325
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述

字节跳动面试算法题

作者:sam3125C
链接:https://www.nowcoder.com/discuss/377141
来源:牛客网
  • LeetCode 001. Two Sum
  • LeetCode 015. 3Sum (可能会问 LeetCode 18. 4Sum 思路)
  • LeetCode 020. Valid Parentheses
  • LeetCode 021. Merge Two Sorted Lists
  • LeetCode 025. Reverse Nodes in k-Group
  • LeetCode 053. Maximum Subarray
  • LeetCode 066. Plus One(等价于:高精度加法)
  • LeetCode 098. Validate Binary Search Tree
  • LeetCode 110. Balanced Binary Tree
  • LeetCode 134. Gas Station
  • LeetCode 136. Single Number
  • LeetCode 137. Single Number II
  • LeetCode 146. LRU Cache(变形题:带有过期时间的 LRU 缓存)
  • LeetCode 206. Reverse Linked List
  • LeetCode 215. Kth Largest Element in an Array(等价于:快速排序)
  • LeetCode 232. Implement Queue using Stacks
  • LeetCode 328. Odd Even Linked List
  • LeetCode 415. Add Strings(等价于:大数加法)
  • LeetCode 470:rand7() rand10()
  • LeetCode 496. Next Greater Element I(时间复杂度O(n))
  • LeetCode 716. Max Stack(两个栈实现最大栈,要求 pop,push,get_max 都为O(1))
  • LeetCode 860. Lemonade Change
  • LeetCode 862. Shortest Subarray with Sum at Least K
  • LeetCode 876. Middle of the Linked List
  • LeetCode 946. Validate Stack Sequences

腾讯面试题

  1. 字符串A去掉字符串B出现字符
  2. 二叉树从根到叶节点是否等于一个值
  3. 一个二维数组,横向递增,纵向递增,求解是否某个数存在
  4. 给出N,求1~N中每一位数乘起来乘积最大,比如220最大的就是199,288最大的是288
  5. 编程求子集。

输入:5 3 8 3 2 5 输出 3 3 5 4 4 4
给一个数组,元素表示楼的高度,问在某个位置下,可以看到多少栋楼?
当前面的楼的高度大于等于后面的楼时,后面的楼将被挡住。

  1. 一共有M个背包,n把锁。每个背包和锁上都有对应的编号,相加等于奇数时才可以打开一个背包,问最多能打开多少个背包。
  2. 满意度问题,一个长队买东西,每个人都有一个满意度和不满意度,即m[i]和n[i],每个人的权重计算时am[i]-bn[i].如何才能调整队列的顺序,让整个队伍的权重尽可能的高。

上来打完招呼就直接先做5道题
9.两个字符串A,B,将所有同时存在于A,B中的字母从A中剔除(HashMap)
10.一棵二叉树,判断是否存在从根到叶子节点的路径,使得路径各节点值之和等于给定值(DFS)
11.一个矩阵,按行递增,按列递增,判断一个数是否存在于该矩阵中(剑指offer原题)
12.求比整数N小的所有正整数中,各位数字乘积最大者,如输入220,返回199(没做出来,好像其他腾讯面经里也有这道题,据说也是剑指offer原题)
13.在N*N矩阵上随机取三个点A,B,C,用多段横线、竖线将它们连起来,要求各线段长度之和最短
(我想到可以平移成max(x)-min(x) + max(y)-min(y),照着往下推就好)

  1. 在这里插入图片描述
  2. 实现一个LRU缓存,要求基于哈希表,链地址法解决冲突,哈希表固定1e7个桶,缓存最多容纳1e8个数据,要求实现insert()、get()方法
    前几天刚好看过一个哈希表+双向链表的LRU实现。。就按那个思路写了、
  3. 在这里插入图片描述

猿辅导

作者:stitchohana 链接:https://www.nowcoder.com/discuss/236679 来源:牛客网

1.栈排序
2.链表实现队列
3.最长连续递增序列
4.最长不连续序列
5.二维数组回行打印
6.无序数组构建一棵二叉排序树
7.一个数组实现两个栈
8.二叉树宽度
9.二叉树是否对称
10.链表m到n反转
11.一个n位数,现在可以删除其中任意k位,使得剩下的数最小
12.实现有符号大数链表加法,靠近头结点位置为高位
13.字符串横向改纵向
14.八皇后的问题
15.找出来数组中每个元素后边第一个比它大的值
16.给你一个二叉树,从上往下看,然后左往右顺序输出你能看到节点,同一个竖直方向上上面的节点把下面的节点遮挡住了
17.链表反转,分别用遍历与递归实现
18.完全二叉树的最大深度与节点个数
19.两个栈实现队列
20.两个有序数组交集、并集
21.给定一个有序存在重复的值链表,使得每个元素只出现一次
22.leetcode 200
23.二叉搜索树转有序双向链表
24.字符串全排列 ,可能有重复的,要去重
25.二叉搜索树第k个节点,不用中序遍历
26.有序数组查找重复元素个数
27.定长数组实现队列
28.用二分法对一个数字开根号
29.判断一颗树是不是二叉搜索树
30.Excel表的列字母转换,输入第几列,输出列字母组合
31.链表第k-1个节点
32.手撕快排
33.二分查找
34.一个无序有正有负数组,求乘积最大的三个数的乘积
35.求二叉树的深度,不使用递归
36.实现链表,无序链表,对链表值奇偶分离并排序,空间复杂度O(1)
37.单调不递减数组,给一个target,找出大于等于target的下标index
38.单调不递减链表,删除掉重复值
39.无序数组构建一棵二叉排序树
40.行和列都是有序的二维矩阵找一个target值
41.是否是回文链表
42.打印出根节点到叶子节点的最长路径
43.双链表按照奇偶顺序分成两个链表,要求不要复制链表
44.不严格递增数组,要求删除出现次数大于k的数字,要求不要新建存储空间
45.链表相邻元素交换
46.二叉树的最小公共祖先
47.字符串形式自定义进制大数相加
48.链表每隔k个反转
49.输出根节点到叶子节点路径之和为target的路径列表
50.一些数,任意排列求可形成最小的值
51.LeetCode 1038.
52.数组题,任意一个整型数组,判断是否可以将数组分为三个区间,每个区间中数值的和相同
53.已排序的整数数组去重
54.错位的全排列(第一位不能是1,第二位不能是2)
55.k路链表归并
56.非降序数组,找与target最相近的数的下标
57.二叉树逆时针打印最外层节点
58.输入一个数字n,构建一个完全二叉树并输出
59.输入一个矩阵,起始点和目标点,判断是否存在可达路径
60.无向图最短路径
61.第K层叶子节点个数

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值