智工N号 level
获赞
49
粉丝
28
关注
13
看过 TA
511
东北大学
2027
Java
IP属地:广东
开源信息💻 积淀自己💪
私信
关注
03-09 18:21
东北大学 Java
hot🔥100 全部思路现已奉上 并附有一些模版和方法帮助各位uu面试前快速复习激活思路 文字省略部分看图即可栈69.有效的括号:奇数 return false 哈希表保存对应关系 左括号入右括号判断栈顶左括号对应关系70.最小栈:栈中保存添加元素 和 前缀最小值 初始化栈底添加Integer.MAX_VALUE(+∞)哨兵对应栈为空71.字符串解码:DFS递归 k[encoded_string] 嵌套的括号从内到外解码72.每日温度:单调栈 从右到左(peek是索引小数值更大数)从左到右(todolist)73.柱状图中最大的矩形:单调栈 存储 柱子下标 遍历过程找每个柱子左边界(第一个比它矮的柱子)和右边界(第一个比它矮的柱子)堆74.数组中的第k个最大元素:(找下标n - k元素)快排 随机数选择pivot(遇到大量重复元素会退化到O(n<sup>2</sup>))两种思路:1-把 < pivot 改成 ≤ pivot三路划分:小于、等于和大于基准数的所有元素75.前k个高频元素:🪣桶排序 哈希表现统计元素出现次数 出现次数相同元素放入同一个桶,然后倒序遍历桶76.数据流的中位数:大小堆 最大堆比最小堆多一个数贪心77.买卖股票的最佳时机:更新minPrice 找最大prices[i] - minPrice78.跳跃游戏:维护最右可达位置max,i > max return false79.跳跃游戏II:更新从当前所有位置能跳到的最远位置   当走到当前跳跃能到达的最远位置进行一次新的跳跃80.划分字母区间:遍历字符串,计算字母的最后出现下标(last[i])合并区间动态规划递推 - 状态转移方程初始值 - 递归边界0-1背包每个物品只能选 0 个或 1 个分割等和子集、子集和问题完全背包每个物品可以选任意多次零钱兑换、完全平方数问题0-1 背包:物品唯一,怕重复 → 倒序遍历完全背包:物品无限,要重复 → 正序遍历多维动态规划技巧
0 点赞 评论 收藏
分享
03-08 13:26
已编辑
东北大学 Java
树🌲 35.二叉树的中序遍历:递归/非递归前序:根左右 中序:左根右 后序:左右根36.二叉树的最大深度:递归37.翻转二叉树:递归 交换38.对称二叉树:递归 判断左右子树是否互为镜像39.二叉树直径:链:node子树中叶子节点到node路径,拼node左右两条链长最大值为直径。DP40.二叉树的层序遍历:Queue BFS41.有序数组转换为二叉搜索树:二分得到两个小数组  递归42.验证二叉搜索树:前序/中序遍历43.二叉搜索树中第k小的元素:中序遍历找第k个节点44.二叉树的右视图:先递归右子树,再递归左子树45.二叉树转为链表:头插法 按右子树-左子树-根顺序DFS树46.前序 中序 数组构造二叉树:前序:根左右 中序:左根右 分左右子树递归47.路径总和III:哈希表统计根节点开始的路径和的出现次数,计算起点的次数48.二叉树最近的公共次数:当前节点 null p q / 左右子树是否为空49.二叉树中的最大路径和:DP 链 直径图50.岛屿数量:递归遍历上下左右并标记51.腐烂的橘子:多源BFS Queue 四方向遍历52.课程表:(有向图是否有环)建图 三色标记法53.实现Trie(前缀树):构造26叉树(包含长26的子节点,和布尔值end/flag 标识变量判断是否为终止节点)。回溯选与不选:子序列排列型回溯:枚举选哪个54.全排列:boolean []onPath标记选过没 再枚举path[i]填哪个的数55.子集:选与不选56.电话号码的字母组合:DFS + 枚举回溯先写数字对应电话键盘字母常量数组    获取当前数字对应的字母串 当前数字对应的字母串57.组合总数:选与不选 dfs中target == 0 说明找到了一个合法组合 加入path58.括号生成:')' 数量==n 填完 '(' < n 填 '('')' < '(' 填')'59.单词搜索:DFS + 回溯  上下左右 优化:可行性剪枝+顺序剪枝60.分割回文串:DFS + 回溯枚举字符串中所有可能的分割点(选 / 不选 i 和 i+1 之间的逗号),只保留 所有分割出的子串都是回文61.N皇后:DFS + 回溯 逐行放置皇后正斜线diag1[2 * n - 1]  r + c反斜线diag2[2 * n - 1] r - c + n - 1queens[r] = c 表示第 r 行的皇后放在第 c 列col[c] = true 表示第 c 列已被皇后占用二分62.搜索插入位置:二分63.搜索二维矩阵:从第一行最后一列排除法64.在排序数组中查找元素的第一个和最后一个位置:二分找第一个位置再找元素值+1的第一个位置下标再 -1  要判断能否找到65.搜索旋转排序数组:先找到旋转数组的最小值下标(旋转点),将数组拆分为两个升序的子数组判断 target 属于哪个升序子数组,在该子数组中用二分查找找目标值。66.寻找旋转排序数组中的最小值:二分中点值与最后一位值(nums[n-1])比较67.寻找两个正序数组中位数:将两个数组整体划分为左右两部分,左部分的所有数 ≤ 右部分的所有数;a/b 对 nums1/nums2 的 “哨兵扩展数组”:头部加(-∞)、尾部加 (+∞),避免处理数组边界越界。a[i] ≤ b[j+1] && b[j] ≤ a[i+1]左部分的元素个数 = (m+n+1)/2(保证奇数长度时左部分多一个,直接取左部分最大值为中位数);枚举 nums1 的分割点,推导 nums2 的分割点,找到满足 “左≤右” 的分割点后,计算中位数。
0 点赞 评论 收藏
分享
03-08 09:53
已编辑
东北大学 Java
最近要开始准备面试了 准备花一两天先极速复盘下hot100思路 以下是1-34题 从哈希表到链表题供大学参考[萌萌哒R]1.两数之和:哈希表 维护右枚举左2.字母异位词分组:哈希表  排序字符串后相同加入同一组3.最长连续序列:元素加入Set中,遍历元素起点找最长连续序列4.移动零:双指针交换元素5.盛最多水的容器:双指针6.三数之和:先排序 双指针7.接雨水:前后缀分解 相向双指针8.无重复字符的最长子串:哈希表统计字符出现次数 有字符次数 > 1 移除左端点字符 滑动窗口9.找到字符串中所有字母异位词:不定长滑窗10.和为k的子数组:前缀和 哈希表11.滑动窗口最大值:单调队列 右入左出 维护队首(最大值)12.最小覆盖子串:滑动窗口 用一个less变量维护子串中有less种字母出现次数小于t中字母的出现次数13.最大子数组和:前缀和 + 贪心 / 动态规划14.合并区间:按左端点排序 合并区间和新区间比较合并15.轮转数组:三次反转16.除了自身以外的数组的乘积:前后缀分解相乘17.缺失的第一个正数:索引和值匹配放置18.矩阵置零:扫两遍matrix,第一遍分别记录行0和列0,第二遍置019.螺旋矩阵:用一个右下左上的方向数组,到头拐点20.顺时针90度旋转图像:两次翻转21.搜索二维矩阵:排除法21.相交链表:到null跳到另一条链22.反转链表:头插23.回文链表:寻找中间节点 反转后半链表 开始比较24.环形链表:快慢指针相遇25.环形链表2:Floyd判圈(快慢指针相遇时 头指针和慢指针同时走相遇时为入环处)26.合并两个有序链表:迭代尾插法27.两数相加:递归 (两节点值和进位值相加 / %)28.删除链表的倒数第N个节点:前后指针 找倒数第N + 1个节点29.两两交换链表中的节点:迭代30.k个一组翻转链表:反转链表(k个一组)处理小组反转后的更新31.随机链表的复制:节点后一位是复制的新节点 再分离节点32.排序链表:找到中间节点 分治排序两个链表 再合并两个有序链表33.合并k个升序链表:最小堆 头节点入堆34.LRU缓存:HashMap + 双向链表
0 点赞 评论 收藏
分享
02-25 22:31
东北大学 Java
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道真题和解析
0 点赞 评论 收藏
分享
02-16 01:26
东北大学 Java
假期沉淀第一步依靠cursor老师做的agent项目 我觉得是真实满足我个人的需要 也免费开源分享给大家 可直接部署在本地 如果有用希望可以点个小星星⭐️Github:https://github.com/alvinxx1123/sspOffer-interview-assistant开源免费java-agent项目 可本地运行 也可以部署阿里云上线运行 ☁️个人搭建运行后 可整理保存从各大平台收集的面经方便学习 不用来回跨平台搜索 一次解决👍支持保存个人简历 和 投递公司进度👍无论是面试完的立刻复盘 还是面试前的准备 都可以结合面经库中面经(RAG)和大模型本身生成更适用于自己的有效意见[耶R]也不用担心acm模式了 在线IDE题库中可自定义添加题目 然后运行ACM模式代码📖面经搜索:按公司、部门检索个人面经,支持手动录入或图片解析🤖AI 面试模拟:根据目标公司/部门面经(RAG) + 你的简历生成深挖问题📑面试复盘:上传真实面经,AI 深度复盘分析,给出改进建议💻在线 IDE:支持 Java、Python、Go 等 ACM 模式运行,题库支持手动添加题目📄简历+投递:简历管理、投递进度追踪🔒简单密码保护:部署时可配置管理员密码,防止他人修改数据希望可以帮到大家和自己都找到满意的实习和工作,祝大家都成为ssp!!![握手R]
简历中的项目经历要怎么写
0 点赞 评论 收藏
分享
01-23 09:22
已编辑
东北大学 Java
贡献第一个面经 也是大凉经 自我剖析 实习 项目 八股 掌握程度还是太浅 我已经记不清说了多少“不太记得” “有点忘了” “不知道”无手撕 面试官很好 有的问题还告诉我答案了 还涨知识了家人们 redis单个QPS最高能顶住2w多实习:kafka数据怎么推送来的使用的拒绝策略是abort直接拒绝 拒绝抛的异常实在哪里看 监控器还是日志, 日志里是怎么看 丢失数据的话怎么处理 有什么影响线程池优化为什么选择扩大核心线程数和最大线程池 初始设置的线程数的设置有什么依据吗 扩大任务队列不行嘛项目:点评没问另一个项目问的:为什么设计多级缓存 去掉多级缓存就用redis行不行 没回答上 被面试官评价为为了设计而设计 还问redis qps最高支持多少用到了jwt 问:签名 和 加密 的区别八股:ArrayList LinkedList区别 底层结构hashmap 和 concurrenthashmaphashmap为什么要引进红黑树Spring IOC 和 AOPspring bean作用域Synchronized 和reentrantlock线程运行状态JVM结构堆 栈 计数器内等存储内容垃圾回收器重载和重写== equals  equals比较值是怎么实现的mysql事务 acidmysql默认隔离级别事务隔离级别innodb 和 myisam区别 除了这两个还有其他的嘛为什么会回表讲讲索引最左匹配select * from... where a = .. ,b = .. , ... 这时候还会用到联合索引吗三握四挥tcp和http区别联系http和https区别智力题:64匹马 8个赛道 选跑最快的4匹马 最少需要多少次
查看29道真题和解析
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务