写点什么

阿里、华为、字节跳动,大厂面试算法题

用户头像
Android架构
关注
发布于: 1 小时前

顺序遍历


先序遍历: 根->左->右


中序遍历: 左->根->右


后序遍历: 左->右->根


层次遍历


左右翻转


最大值


最大深度


最小深度


平衡二叉树


平衡二叉树每一个节点的左右两个子树的高度差不超过 1

链表

删除节点


翻转链表


中间元素


判断是否为循环链表


合并两个已排序链表


链表排序


删除倒数第 N 个节点


两个链表是否相交

栈 / 队列

带最小值操作的栈


实现一个栈, 额外支持一个操作:min() 返回栈中元素的最小值


有效括号


给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]" 则是无效的括号。


用栈实现队列


逆波兰表达式求值


在反向波兰表示法中计算算术表达式的值, ["2", "1", "+", "3", "*"] -> (2 + 1) * 3 -> 9

二分

二分搜索


X 的平方根

哈希表

两数之和


给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。需要实现的函数 twoSum 需要返回这两个数的下标。


连续数组


给一个二进制数组,找到 0 和 1 数量相等的子数组的最大长度


最长无重复字符的子串


用 HashMap 记录每一个字母出现的位置。设定一个左边界, 到当前枚举到的位置之间的字符串为不含重复字符的子串。若新碰到的字符的上一次的位置在左边界右边, 则需要向右移动左边界


最多点在一条直线上


给出二维平面上的 n 个点,求最多有多少点在同一条直线上

二叉搜索树

验证二叉搜索树


第 K 小的元素


增加 getCount 方法来获取传入节点的子节点数(包括自己),从 root 节点开始判断 k 值和子节点数的大小决定递归路径是往左还是往右。

数组 / 双指针

加一


给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照数位高低进行排列,最高位的数在列表的最前面。


删除元素


给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。


删除排序数组中的重复数字


在原数组中“删除”重复出现的数字,使得每个元素只出现一次,并且返回“新”数组的长度。


我的日程安排表


合并排序数组


合并两个排序的整数数组 A 和 B 变成一个新的数组。可以假设 A 具有足够的空间去添加 B 中的元素。

贪心

买卖股票的最佳时机


假设有一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。


买卖股票的最佳时机 II


给定一个数组 prices 表示一支股票每天的价格。可以完成任意次数的交易, 不过不能同时参与多个交易,设计一个算法求出最大的利润。


最大数组


给定一个整数数组,找到一个具有最大和的子数组,返回其最大和


主元素


给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一(可以假设数组非空,且数组中总是存在主元素)。

字符串处理

生成括号


给定 n,表示有 n 对括号, 请写一个函数以将其生成所有的括号组合,并返回组合结果。


Excel 表列标题


给定一个正整数,返回相


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


应的列标题


翻转游戏


给定一个只包含两种字符的字符串:+和-,你和你的小伙伴轮流翻转"++"变成"--"。当一个人无法采取行动时游戏结束,另一个人将是赢家。编写一个函数,计算字符串在一次有效移动后的所有可能状态。


翻转字符串中的单词


给定一个字符串,逐个翻转字符串中的每个单词


转换字符串到整数


最长公共前缀


回文数

动态规划

单词拆分


给定字符串 s 和单词字典 dict,确定 s 是否可以分成一个或多个以空格分隔的子串,并且这些子串都在字典中存在。


爬楼梯


假设你正在爬楼梯,需要 n 步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?


打劫房屋


假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,在不触动报警装置的情况下, 你最多可以得到多少钱 。


编辑距离


给出两个单词 word1 和 word2,计算出将 word1 转换为 word2 的最少操作次数。


乘积最大序列

矩阵

螺旋矩阵


给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。


判断数独是否合法

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
阿里、华为、字节跳动,大厂面试算法题