首页 / 一人分享一道面试手撕题
#

一人分享一道面试手撕题

#
活动
9237次浏览 473人互动
走过路过请留下一道手撕题>>
活动详情
活动规则
1.5-1.11参与话题分享有关内容,可得以下奖励👇 1️⃣发布内容≥50字,奖励30牛币 2️⃣内容阅读量≥1000,奖励50牛币 阅读量取周一至次周一,以上奖励取最高项发布,多发多得~
30~50牛币
550牛币可换
300牛币可换
此刻你想和大家分享什么
热门 最新
2025-09-25 00:00
已编辑
电子科技大学 Java
字节噩梦手撕难度
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的 const flattern = (obj) => { const res = {}; const dfs = (curr, path) => { if(typeof curr === 'object' && curr !== null) { const isArray = Array.isArray(curr); for(let key in curr) { const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key; dfs(curr[key], newPath); } } else { res[path] = curr } } dfs(obj); return res; }
查看3道真题和解析
点赞 评论 收藏
分享
头像
2025-10-21 16:53
门头沟学院 Java
面试40+总结下面试手撕的题目
本篇为本人实习+秋招面试被考到的手撕算法题和编码题总结首先是算法题:1. 算法题部分,有很多题是非常高频的,仅仅从我个人的面试体验就能看出来,最为突出的就是LRU,到了最后我已经可以在8分钟以内写完一次LRU了2. hot100在其中的比例为7/20,但是如果算上重复的,那就超过50%了;另外还会有一些题目是从hot100的做题思想就能拓展出去的3. 无他,唯手熟尔需要编码的场景题通常涉及几个方面的思想:外部多路归并排序;位运算;拒绝采样;大模拟;特殊数据结构有一说一在面试后,我的这方面思想也得到了很大的提升⭐算法题(除去重复题目,共20道):➡️ 打家劫舍(力扣No.198,hot100,简单)➡️ 树的路径总和 ×2(力扣No.112,简单)➡️ LRU缓存 ×5(力扣No.146,hot100,中等)➡️ 最小栈 (力扣No.155,hot100,中等)➡️ 重排链表 ×2(力扣No.143,中等)➡️ 螺旋矩阵II(力扣No.59,中等)➡️ 最大子数组和(力扣No.53,中等)➡️ 合并区间 ×2(力扣No.56,hot100,中等)➡️ 岛屿数量 ×2(力扣No.200,中等)➡️ 二叉树的层序遍历 ×2(力扣No.102,hot100,中等)➡️ 寻找峰值(力扣No.162,中等)➡️ 翻转链表II(力扣No.92,中等)➡️ 快排 ×2(中等)➡️ 数组中第k大的数,要求堆排序思想写 ×2次(力扣No.215,hot100,中等)➡️ 字符串中最长无重复字符的子串(力扣No.3,hot100,中等)➡️ 分发糖果(力扣No.135,困难)➡️ 小于n的最大数(字节高频题,非力扣,困难)➡️ 寻找旋转排序数组中的最小值(力扣No.153,中等)➡️ 整数反转(No.7,中等)➡️ n个六面的骰子,扔一次之后和为k的概率是多少(中等)⭐场景模拟题:➡️ 两个线程交替输出1-100➡️ 两个复杂字典,如何将字典1通过一些规定好的操作变成字典2➡️ 长为8位的无重复大量数据,如何从小到大输出?如果内存不够一次全部读入呢?➡️ 如果有10亿个32位的整数,如何找出那些只出现过一次的数?内存有限,无法一次性读入全部数据,另外时间复杂度越低越好⭐特殊题:➡️ 实现一个无锁的线程安全的循环队列 ×2,一次Java一次Go➡️ 给定一个数组,如何用最小的比较次数获得最大最小值➡️ 有一个rand函数,生成1的概率是p,0的概率是1-p,那么如何用它生成一个rand2(),使得生成1和0的概率都是0.5➡️ 用rand7()函数构造函数rand10()➡️ 带超时时间的LRU缓存➡️ 实现一个单例模式加油💪🏻祝大家都有自己满意的offer!
查看30道真题和解析
点赞 评论 收藏
分享
前端手撕题—倒计时组件
得物、拼多多经常考,倒计时组件1.倒计时组件2.如何实现精确计时(setInterval 1s先就update以前知道写但没考虑到为什么,时间戳同步)// Countdown.jsximport React, { useEffect, useState, useRef } from 'react';/*** props:*  - endAt: number (timestamp ms) 或 Date*  - onFinish?: () => void*  - tickMs?: number (minimal tick granularity, default 1000)*/export default function Countdown({ endAt, onFinish, tickMs = 1000 }) {const endTs = typeof endAt === 'number' ? endAt : endAt.getTime();const [remaining, setRemaining] = useState(Math.max(0, endTs - Date.now()));const mounted = useRef(true);useEffect(() => {mounted.current = true;// initial syncfunction update() {const now = Date.now();const rem = Math.max(0, endTs - now);if (!mounted.current) return;setRemaining(rem);if (rem === 0) {onFinish?.();return;}// Align next update to wall-clock second boundary (or tickMs)const delay = Math.min(tickMs,1000 - (now % 1000) // align to next second for nicer UX);// If <1s left, use requestAnimationFrame for smoothnessif (rem <= 1000) {requestAnimationFrame(update);} else {setTimeout(update, delay);}}update();return () => {mounted.current = false;};}, [endTs, onFinish, tickMs]);const sec = Math.ceil(remaining / 1000);const mm = Math.floor(sec / 60);const ss = sec % 60;return (<div>{mm}:{String(ss).padStart(2, '0')}</div>);}
查看2道真题和解析
点赞 评论 收藏
分享
卡尼亚ai教练的问题外来npc
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务