首页 / 算法题
#

算法题

#
53430次浏览 393人互动
此刻你想和大家分享什么
热门 最新
02-25 22:31
东北大学 Java
面试150(非HOT100重叠部分)P1
Part1:字符串/数组(注重StringBuilder的使用):1.合并两个数组:倒序插入排序2.删除有序数组重复项 I / II : 指针计数3.股票利润II : 局部贪心累加所有上升坡段4.H指数:计数排序(桶排序),倒着遍历5.O(1) 时间插入、删除和获取随机元素:HashMap + ArrayList,删除就用尾节点与被删节点交换再删尾节点6.加油站:贪心 总油量不能亏损 找局部亏损最低点7.分糖果:两次贪心  进阶:常数空间解法:上升段 平坡 下降段8.罗马数字转整数:比较相邻两罗马数字,左 > 右 +当前罗马数字数值 否则 减 当前罗马数字数值9.整数转罗马数字:排列所有可能罗马数字从大到小,遍历数值,减去罗马数字数值去拼接10.最长公共前缀:以第一个字符为基准,去纵向扫描其他字符串的列开始比较11.反转字符串的单词:去除字符串首位和单词间多余空格(仅保留一个)-> 反转字符串 -> 反转每个单词12.Z字型变换:用StringBuilder对象作为桶来存储该存储的字符,用一个标志变量flag判断向下/向上走(第一行/最后一行)13.找出字符串中第一个匹配项的下标(haystack, needle):needle 是一个固定长度的窗口,在 haystack 上从左向右滑动,设 haystack 长度为 n,needle 长度为 m。我们只需要在 haystack 中遍历到索引 n - m,去匹配。    进阶:KMP算法(next数组)14.文本左右对齐!!!(难度巅峰):核心是空格的分配:情况 1:当前行只有一个单词-单词左对齐,末尾补齐空格情况 2:当前行是最后一行-所有单词左对齐,单词间只留 1 个空格,行末补齐空格情况 3:普通行-计算总空格数:maxWidth - 当前行单词总字符数。均匀分配:空格数 / (单词数 - 1) 是基础空格数。左侧多分配:空格数 % (单词数 - 1) 是需要额外多加 1 个空格的间隔数。
查看14道真题和解析
点赞 评论 收藏
分享
2025-08-10 16:25
滴滴_后端开发
大家面试遇到过很难的算法题吗?
讲文明的秋招侠拥抱太...:力扣暴力合并的做法,能过,只不过没最优解好
点赞 评论 收藏
分享
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务