小红书前端笔试9.19

题型:选择20 编程3

总体:题真的不难啊...我该说我太渣呢?还是JS太渣呢?好吧...归根到底就是我太渣
我感觉思路都没啥问题,但就是一题没A...我不懂了...跪求各位大佬赐教!

烦恼ing...

编程1:零件(55%)

const [a1, a2, a3, a4, x] = [1, 3, 3, 2, 5]
const matrix = [
    [4],
    [7, 7, 9],
    [6, 3, 5],
    [2, 8],
]

let res = [];
for (let item of matrix) {
    let temp = item.filter(v => v > x);
    res.push([...temp]);
}

console.log(res)
res = res.map(item => item.length ? item.length : 0);
console.log(Math.min(...res));

编程2:最小花费(82%)

思路:动态规划

const n = 5, k = 2;
const heights = [1, 5, 3, 4, 2];

// 思路动态规划
function fn2(n, k, heights) {
    // 传送规则: 高-低不花钱,低到高花钱=高度差
    let dp = new Array(n).fill(0);

    for (let m = 1; m < k; m++) {
        dp[m] = heights[m] > heights[0] ? heights[m] - heights[0] : 0;
    }

    for (let i = k; i < n; i++) {
        let temp = Infinity;
        for (let j = 1; j <= k; j++) {
            let c = heights[i] < heights[i-j] ? 0 : Math.abs(heights[i-j] - heights[i]);   // 高-低不额外收费
            temp = Math.min(temp, dp[i-j] + c)
        }
        dp[i] = temp;
    }

    return dp[n-1];
}

console.log(fn2(n, k, heights))

编程3:支配数(72%)

思路:滑动窗口

const n = 5, k = 2;
const nums = [1, 2, 1, 2, 3];

// 思路:滑动窗口
function fn3(n, k, nums) {
    let res = 0;
    for (let i = 0; i < nums.length; i++) {
        for (let j = i+k; j <= nums.length; j++) {
            let temp = nums.slice(i, j);
            if (helper(temp, k)) {
                res += (n-j+1);
                break;
            } else {
                continue;
            }
        }
    }

    return res;
} 

function helper(arr, k) {
    let m = new Map();
    for (let item of arr) {
        if (!m.has(item)) {
            m.set(item, 1);
        } else {
            if (m.get(item) === k-1) {
                return true;
            }
        }
    }

    return false;
}

console.log(fn3(n, k, nums))
#小红书笔试##前端#
全部评论
小红书前端不招人的,前两年都是kpi笔试,今年不清楚了
1 回复 分享
发布于 2022-09-19 19:35 浙江
lz几个意向了
点赞 回复 分享
发布于 2022-09-21 11:37 吉林
世另我
点赞 回复 分享
发布于 2022-09-19 20:10 浙江
a了1、2,第三个题题没看完暴力过50%就run;见鬼的是,第一题js写过27%,换C++写就a了,只能说离离原上谱
点赞 回复 分享
发布于 2022-09-19 19:19 福建
见鬼了我前两道也55
点赞 回复 分享
发布于 2022-09-19 18:52 北京

相关推荐

一面(1.8&nbsp;21.00&nbsp;48min)项目相关1.&nbsp;实习经历主要做什么事情?2.&nbsp;Web上主要做什么?管理后台还是员工用的?3.&nbsp;你在里面主要负责什么事情?4.&nbsp;配置项大概包含什么内容?5.&nbsp;子集和孙集的策略是怎么划分的?6.&nbsp;配置驱动渲染是指什么意思?什么配置来驱动渲染的?7.&nbsp;为什么有的配置项会展示,有的不会展示?8.&nbsp;你怎么判断哪个组件需要做什么事情?9.&nbsp;(追问)如果要在某个特定组件上加一次请求,怎么处理?10.&nbsp;你觉得这里面比较难的地方在哪里?React状态管理1.&nbsp;用到React的什么库?2.&nbsp;Redux、Zustand、MobX这三个有什么区别?3.&nbsp;(追问)为什么说Zustand是单例?什么东西是单例?4.&nbsp;MobX的响应式绑定一般用什么东西来做?5.&nbsp;Object.defineProperty和Proxy的差别是什么?React原理1.&nbsp;讲一下你对React的理解?2.&nbsp;React是怎么做异步可中断渲染的?3.&nbsp;可中断是在哪里中断?4.&nbsp;可中断的任务是怎么去执行的?5.&nbsp;5毫秒任务是在什么时候开始执行的?6.&nbsp;为什么是5毫秒?7.&nbsp;(关键问题)React怎么保证在每帧渲染之前去执行这个任务?手写题1.&nbsp;手写useRequest&nbsp;-&nbsp;包含多个追问:○&nbsp;manual写在哪里?○&nbsp;run函数每次渲染都生成一次,怎么让它稳定?○&nbsp;fn变了但run保持稳定,同时能获取最新的fn,怎么处理?○&nbsp;useRef初始化的问题○&nbsp;run函数要返回Promise吗?反问因为时间太晚,&nbsp;希望面试官早点回家,就说了一下这次面试我学到了很多,&nbsp;也很开心。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20分钟约2面二面(1.9&nbsp;5.00&nbsp;23min)基础/学习类:前端学了多久?自学的吗?学习渠道是什么?平时AI了解多吗?什么场景用AI?项目类:SDK监控是什么?技术栈是什么?项目是自学项目还是实际业务?聊一个实际工作中的项目技术原理类:&nbsp;React&nbsp;Fiber架构了解吗?展开讲讲手写代码:&nbsp;&nbsp;Promise.all其他:&nbsp;实习时间安排反问:&nbsp;业务是啥20分钟oc总结:效率特别高
发面经攒人品
点赞 评论 收藏
分享
评论
2
11
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务