华为、字节跳动、腾讯等面试出现的编程题汇总
程序员文章站
2024-03-20 14:59:16
...
本帖记录今年春招以来我在牛客网上看到了各大公司面经里面出现的编程题,持续更新,欢迎补充
华为面试算法题汇总
-
Leetcode2 链表相加
-
一个汽车工厂,实现工厂模式
-
leetcode最长公共前缀
-
图的最短路径算法
-
找出字符串第一次只出现一次的字符
-
最大的连续1个个数
-
32位数据 按位进行调换
-
一面砖墙,画一条竖线,哪里画线穿过的砖块最少。
-
https://leetcode-cn.com/problems/house-robber/打家劫舍原题,条件改成相距为2及以下的不能一起偷。
-
https://leetcode-cn.com/problems/number-of-islands/岛屿数量原题
-
target和数组返回三数之和为target
-
[0,1,0,2,2,0,0,1,12]
将所有0移至数组末尾,不允许新开数组 -
贪心求CPU运行时间
-
给一组数,求数字左边比它大的数,之间的最小距离
-
循环链表检测
-
两个栈实现队列
-
两个分数相加返回约分后的结果
-
【手撕代码题目】找出字符串中第一个只出现一次的字符
输入描述:输入一个非空字符串
输出描述:输出第一个只出现一次的字符,如果不存在输出-1
机考题:
- 90度翻转矩阵亲测可以用额外空间
- 全排列问题需要剪枝(懒得剪了
- 编译距离
- Linux shell脚本中{xxx},需要将字符串中所有的${xxx}替换成实际值.示例:
输入:4 xxx=lyf
说明:第一行4为输入总行数,其余为输入字符串,
输出:/aaa/lyf/www/test/bbb/seeyou/ccc
说明:将最后一行等号右边的实际值输出 - 求最短采蜜路径距离
- 流水线N个产品每个产品有M个零件,Aij表示生产该零件的生产时间
需满足以下2个条件- Aij需要生产出来必须保证Ai-1 j先生产出来
- Aij需要生产出来必须保证Ai j-1先生产出来
- leetcode第一题
- 实现一个基础栈,要求栈的所有功能,还要找出栈中最小值
字节跳动面试算法题
作者: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、编程求子集。
6、
输入:5 3 8 3 2 5 输出 3 3 5 4 4 4
给一个数组,元素表示楼的高度,问在某个位置下,可以看到多少栋楼?
当前面的楼的高度大于等于后面的楼时,后面的楼将被挡住。