小红书前端笔试4.7+3.26(附题解)

笔试说明

笔试得分60%一般通过,面试答对80%才能通过

一般过了3道编程,过了1.5就差不多,2就稳了。但是不绝对,有的一道题也会让你面试,有的a了2,也不一定有面试机会

有没有面试机会更多看的是卷的程度,学历能提分

平台

连同一平台的笔试模式也可能不同,千万不能掉以轻心,比如百度牛客网,我以为和之前的SHINE在牛客网上的笔试一样是核心代码模式。笔试平台都会提供输入输出示例,但是考试时现场学浪费时间。

一般是允许本地编程的,建议本地编程,因为有时候平台代码提示功能不好,比如拼写错误检查费时。

记得考前清空本地IDE代码,准备好空模板,不要在考试时一打开就是上次的代码,含有代码的IDE有可能被记为作弊。

!!!!!!!!!!!!!!!!!!!!!!!!!!!!ACM模式和普通的核心代码模式完全不一样!!!!!!!!!!!!!!

所以大家一定,一定提前练习牛客的输入输出和赛码网的输入输出!!!一定提前练习!!!!

牛客的输入输出练习看这,没空的可以直接看模板前端笔试常考数据结构,ACM模板,经典算法

赛码网的大家直接去赛码网,不过其实和牛客的差不多,只不过是函数的区别,比如readline()和read_line()这样的区别~

编程

请养成,随手保存代码的好习惯,以防出现意外。

得分=AC率*总分

能力不足的情况下,编程题一定要把握好节奏,明白初心是通过笔试,而不是全部做出来。

小红书

赛码网上笔试,建议提前了解输入输出

笔试得分60%一般通过,面试答对80%才能通过

单选20题40分+编程3题60分

4.7选择题

知识点覆盖到HTML+CSS+JS+数据库+操作系统+数据结构与算法

小红书:前端,计算机基础,常规算法(前端:计算机基础=3:1)

计算机基础(数据库,操作系统,数据结构与算法,计算机网络)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!4.7单选和多选题是混着出的,一定要注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • 图片中定义标题的标签是什么(<figcaption>)
  • Mysql中set names utf18的简写
  • 场景题:完全背包问题
  • 斐波拉契数列中的第15项是什么
  • 长度为10的有序表静心等概率的查找,成功平均查找长度是多少((n+1)/2)
  • 协作图的元素有哪些
  • display设置为什么的时候,为内联元素(inline)
  • 内存有哪些(堆,栈)
  • 场景题:进程中的直接关系
  • 看代码选输出(x2)

4.7编程

1.给定一颗树,删除某边,使得分裂的两个树的结点数绝对值最小

2.给出正整数n,X,C,有n类体积为xi,物质为yi单位的溶液进行配比(例如i和j配比,体积=xi+xj,物质=yi+yj),当体积相等时,物质=yi+yj+X,当n类溶液数量不限,生产的新溶液也可以接着和其他溶液配比,求当配比总溶液为C时,最大的物质能有多

3.双色球编号为1-n,当红球在袋子里,红球的编号每秒+1,蓝球编号每秒-1,每次操作分类ti时刻向袋子中放入球,从袋子中取出球,以及询问当前所有袋子中编号和(初始情况下袋子中没有球)

T1: 平衡(DFS)

对于树的每条边,记录子节点所在子树的节点个数为m,则平衡值为abs(2m - n),用dfs遍历子树即可。

from collections import defaultdict
def solve(n, edges):
    score, fa, ans = [1] * n, [-1] * n, []
    ch = defaultdict(list)
    for u, v in edges:
        ch[v - 1].append(u - 1)
        fa[u - 1] = v - 1
    root = fa.index(-1)
    def dfs(x):
        for y in ch[x]:
            score[x] += dfs(y)
        ans.append(abs(2 * score[x] - n))
        return score[x]
    dfs(root)
    minv = min(ans)
    return minv, ans.count(minv)

n = int(input())
edges = []
for _ in range(n - 1):
    s, t = map(int, input().split())
    edges.append((s, t))
print(*solve(n, edges))

T2: 配制溶液(动态规划)

记dp[i]为溶液体积为i时物质含量的最大值,状态转移方程为

dp[i] = dp[j] + dp[i - j], if 2 * j != i;

dp[i] = dp[j] + dp[i - j] + X, if 2 * j == i.

复杂度为O(n^2),n<=1000能通过。

def solve(volumns, weights, add, target):
    dp = [-float('inf')] * (target + 1)
    for v, w in zip(volumns, weights):
        dp[v] = max(dp[v], w)
    for i in range(1, target + 1):
        for j in range(1, i):
            dp[i] = max(dp[i], dp[j] + dp[i - j] + add * (2 * j == i))
    return dp[-1]
  
_, add, target = map(int, input().split())
volumns = list(map(int, input().split()))
weights = list(map(int, input().split()))
print(solve(volumns, weights, add, target))

T3: 袋子和球(模拟)

变量比较多,比较复杂地模拟一遍即可,注释写代码里了,复杂度O(m).

def solve(nums, colors, times, operations):
    ans, puttime = [], [0] * len(nums) # 查询答案,记录每个球的入袋时间
    rcnt = bcnt = sum = last = 0 # 红球数,蓝球数,当前总和,上一次操作时间
    for t, op in zip(times, operations):
        sum += (t - last) * (rcnt - bcnt)
        if op == 0: ans.append(sum)
        elif op > 0: 
            if colors[op - 1] == 'R': rcnt += 1
            else: bcnt += 1
            puttime[op - 1] = t
            sum += nums[op - 1]
        elif op < 0:
            if colors[-op - 1] == 'R': 
                rcnt -= 1
                nums[-op - 1] += t - puttime[-op - 1]
            else: 
                bcnt -= 1
                nums[-op - 1] -= t - puttime[-op - 1]
            sum -= nums[-op - 1]
        last = t
    return ans
    
n = int(input())
nums = list(map(int, input().split()))
colors = list(input())
m = int(input())
times = list(map(int, input().split()))
operations = list(map(int, input().split()))
ans = solve(nums, colors, times, operations)
print(len(ans), *ans)

以上代码来自https://www.nowcoder.com/discuss/474696203855204352

3.26编程

1.加密:a-z中的任意字母加密模式为往后移动三位,超过z的,会循环到a处,求加密前的字符串

2.K排序:每次取数组中k个​​元素,排好序后,放到数组末尾,其他的元素往前移动,求最少需要几趟排序

以上图片来自https://www.nowcoder.com/feed/main/detail/54d4244641374ef18fb2cb7c4f0a0545

3.涂色:对数组Left,Right区间的元素,与指定的X进行‘|’,‘&’,‘=’,求M趟后的数组

该图片来自https://www.nowcoder.com/discuss/469566137949306880?sourceSSR=search

个人感觉4.7(23届春招补录+24届暑假实习一起考)比3.26(24届暑假实习小红书前端笔试3.26总结选择题要容易,但编程题要难。

#小红书##前端##笔试##软件开发2023笔面经##实习#
全部评论
你好,请问需要双机位嘛
点赞 回复 分享
发布于 2024-05-09 23:04 福建
请问笔试通知里面一个是名称是【C++试卷】一个是【Java试卷】,考的东西是一样的吗?
点赞 回复 分享
发布于 2023-04-21 23:31 江苏
谢谢你!
点赞 回复 分享
发布于 2023-04-21 23:31 江苏
base是武汉吗
点赞 回复 分享
发布于 2023-04-10 14:32 湖北
请问投简历后一般过了多久才会回复?
点赞 回复 分享
发布于 2023-04-10 09:04 广东

相关推荐

bg:双非本,一段中小厂6个月测开实习今天发这个帖子主要是想聊一聊我秋招以来的一个发展我是在8月底辞职,打算秋招,可是看网上都说金九银十就想着自己就是一个普通本科生,现在九月份都是一些大神在争抢,所以9月份基本上没投,等到了10月份才开始秋招,可是这个时间好像已经有些晚了,今年秋招开启的格外早,提前到了7,8月份,我十月才开始,官网投了很多公司,没有任何一个面试机会,这个情况一直到了十月底才有了第一个面试,当时没有面试经验,所以不出意外的挂了后续就是漫长的投递,但是毫无例外没有面试,没有办法我只能另辟蹊径开始在BOSS上边投递,然后顺便也根据BOSS上边这个公司名称去浏览器搜索看看有没有官网投递渠道,毕竟官网上投递后还是可以第一时间被HR看到的,然后一直不停投递,一开始第一个星期基本上都是投的正式秋招岗位到了第二个星期才开始实习和正式一起投,到十一月底的时候已经沟通了700➕才有一共1个正式的,5个要提前实习的,3个实习的面试,最后结果是过了1个要提前实习的和2个实习的每次面试我都会复盘,发现这些小公司面试官问的五花八门,有的专问基础,有的专问项目,有的啥都问,不过自己也是看出来了一下门道,就是小公司不像大公司面试官那样能力比较强基本上你简历上边的他都会,然后会根据简历来问,小公司面试官他们更多的是看自己会什么,然后看看你简历上边哪些他也是会的然后来问,经过不断的复盘加上背各种各样面试题,到了11月底12月初才有了1个要提前实习的offer还有2个实习的offer,而且薪资待遇对我来说已经很可观了可是啊,人总是这样得了千钱想万钱,我又开始不满现状,但是此时的我面试能力经过这么多面试和复盘已经很强了,然后在十二月份运气爆棚,被极兔和小鹏补录捞起来面试,还有个百度测开的实习面试,这个时候因为有了offer所以感觉有了底气,面试也很自信,最后结果是全部都过了那个时候我感觉自己真的很厉害,我问了极兔那边的HR像我这样的双非本收到offer的在极兔有多少?他告诉我产研岗90%都是硕士,10%里边基本上都是211,985,想我这样的很少很少,那一刻感觉自己超级牛逼,小鹏就更不用说了,最后也是不出意外选择了小鹏所以我就我个人经历想对和我学历履历差不多的牛友一些建议第一:秋招一定要趁早,真到了9,10月,那个时候可能你投的结果可能还不如7,8,11月,第二:最好先拿小公司实习或者正式练练手,提升一下面试能力,我个人觉得因为小公司问的五花八门所以你会更加横向去提升自己能力,而且大公司其实面试没有那么难,除了一些非常卷的岗位,公司大神比较多会问的很难,一般好点的公司都不会问的那么难,他们也知道都是应届生不会要求那么高第三:当有一定能力后,就是坚持了,对于我们这样的学历,没有特别强的履历情况下,就是要抓住提前批和补录的机会,这个时候各方面不会卡的很严,是我们很好很好的一个机会第四:就是运气也是很重要的一部分,不过这个很难去说什么最后祝各位牛友都能收获自己满意的offer😁😁😁
秋招,不懂就问
点赞 评论 收藏
分享
12-24 14:26
东北大学 Java
一只乌鸦:重邮+东北,好经典的学校
最后再改一次简历
点赞 评论 收藏
分享
评论
20
50
分享

创作者周榜

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