京东笔试 京东秋招 京东笔试题 0920

笔试时间:2025年9月20日

往年笔试合集:

2023春招秋招笔试合集

2024春招秋招笔试合集

第一题:发粽子

题目描述:端午节要到了,粽子店针对小朋友研发了一种卡通粽子。为了打广告,店铺举办了一个活动:

  • 前 n+1 个索要粽子的小朋友都是可以拿到粽子的。
  • 每一个小朋友都至少要发一个粽子。

还有一个抽卡环节:粽子店准备了 n 张卡,前 n 个小朋友会分别取一张。

卡片有两种:

  1. '+' :抽到这张卡意味着下一个小朋友拿到的粽子比自己多。
  2. '-' :抽到这张卡意味着下一个小朋友拿到的粽子比自己少。

粽子店会在前 n 个小朋友都抽完卡以后统一发放粽子。

请问:粽子店最少需要发放多少粽子,才能符合抽卡的结果?

输入描述

输入第一行仅包含一个正整数 n,表示卡片的数量。

输入第二行是一个长度为 n 的字符串,仅包含 '+' 和 '-' 两种符号。

数据范围:1 <= n <= 500000

输出描述

输出一个正整数,表示粽子店最少发出的粽子数量。

样例输入

3

--+

样例输出

8

样例说明: 最少的发放方案为 {3, 2, 1, 2},总共发放 3 + 2 + 1 + 2 = 8 个粽子。

参考题解

解题思路:

  1. 用一个数组 candy 保存每个小朋友的粽子数,初始都为 1(保证至少一个)。
  2. 从左到右扫描:如果当前位置卡片是 '+',说明下一个小朋友要比当前多,所以让 candy[i+1] = candy[i] + 1。
  3. 从右到左扫描:如果当前位置卡片是 '-',说明下一个小朋友要比当前少,所以保证 candy[i] >= candy[i+1] + 1。用 max 保证不破坏之前的约束。
  4. 最后把所有小朋友的 candy[i] 加起来就是最少需要的粽子数量。

C++:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    string s;
    cin >> s;
    
    vector<long long> candy(n + 1, 1);
    
    // 从左到右处理 '+'
    for (int i = 0; i < n; i++) {
        if (s[i] == '+') {
            candy[i + 1] = candy[i] + 1;
        }
    }
    
    // 从右到左处理 '-'
    for (int i = n - 1; i >= 0; i--) {
        if (s[i] == '-') {
            candy[i] = max(candy[i], candy[i + 1] + 1);
        }
    }
    
    long long ans = 0;
    for (int i = 0; i <= n; i++) {
        ans += candy[i];
    }
    
    cout << ans << endl;
    return 0;
}

Java:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String s = sc.next();
        
        long[] candy = new long[n + 1];
        Arrays.fill(candy, 1);
        
        // 从左到右处理 '+'
        for (int i = 0; i < n; i++) {
            if (s.charAt(i) == '+') {
                candy[i + 1] = candy[i] + 1;
            }
        }
        
        // 从右到左处理 '-'
        for (int i = n - 1; i >= 0; i--) {
            if (s.charAt(i) == '-') {
                candy[i] = Math.max(candy[i], candy[i + 1] + 1);
            }
        }
        
        long ans = 0;
        for (int i = 0; i <= n; i++) {
            ans += candy[i];
        }
        
        System.out.println(ans);
    }
}

Python:

n = int(input())
s = input()

candy = [1] * (n + 1)

# 从左到右处理 '+'
for i in range(n):
    if s[i] == '+':
        candy[i + 1] = candy[i] + 1

# 从右到左处理 '-'
for i in range(n - 1, -1, -1):
    if s[i] == '-':
        candy[i] = max(candy[i], candy[i + 1] + 1)

ans = sum(candy)
print(ans)

第二题:老张的景点规划

题目描述:爱旅游的老张来到了我国西南地区的某个城市旅游。这个城市以海拔落差大著称,同一个城市内既能领略雪山的伟岸,又能欣赏平原溪流的静谧。

老张提前在网上做好了攻略,掌握了这个城市所有

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2025 春招笔试合集 文章被收录于专栏

2025打怪升级记录,大厂笔试合集 C++, Java, Python等多种语言做法集合指南

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-06 11:25
点赞 评论 收藏
分享
头像
昨天 14:54
梧州学院 Java
学院本27大三,七月底入职,干了两个月。感受:实习感觉有点压抑&nbsp;,公司规模不大(劝大家尽量去大一点的公司),老板总是巡逻,看到你拿手机都要过来问你在做什么。不敢摸鱼,不敢看课刷leetcode,领导也很怕被老板看到我们实习生没事情做。我同学去了100-500的公司摸鱼很爽,活不多,组长带头摸鱼,可以随意做自己的事情刷leetcode写项目主要是做b端的业务:&nbsp;刚来第一个星期就是熟悉业务,做一些测试系统的工作,测试就一直在点点点走流程,非常没意思。第二个星期开始写一些接口,都很简单没什么难度。第一个我感觉到有难度的需求是将数据渲染到word文档转pdf导出来,图片数据也要展示出来,之前没接触过同时还有其他需求,碰到一堆问题,拖了一个星期才做完。后面其他项目赶时间让我单独负责两个模块&nbsp;,有比较复杂的业务,数据库表的设计,接口传入响应的数据都要我来设计,还赶时间,加了半个月班吧,最晚十点半下班,周末也在写。主要也是curd。现在快走了想想,我一个实习生那么拼干嘛。跟我一起来实习的其他四个实习生,都是大四的,已经跑回去准备秋招,我是最后一个跑的。实习也看运气,看你去到什么公司,分到什么导师。不过小厂基本需要你进去就当牛马干活。不过也学到了不少技术吧比如Flowable工作流,poi,EasyExcel,对业务也有不少了解。不过公司防着实习生,只能看测试库,看不到生产数据,部署微服务mq的内容也接触不到,感觉两个月后没什么提升。:&nbsp;招聘的时是Java实习生,进来后跟我说前后端都要写,还好不会写前端给推脱了。上班后就不想上班,想回学校躺平,回学校后又不想上课。高考后成绩不好,报志愿时想着,学Java,狠狠赚一笔,报了软件工程。大一结束后努力学习了半年,七月份找到了实习。现在实习后对这种念头渐渐少了,发现我似乎不是很喜欢这种&nbsp;生活。虽然我感觉努努力毕业时或许能找个中厂存个几年钱,但是吃的都是青春饭,拿身体换钱。实习两个月,上周去打球,发现再也不是那个球场上无所不能的我了。打两个回合喘得不行,头晕眼前发黑被迫下场休息。场上突又突不了,投不进,防不住,被一步过。身体已经提前发出了警告。现在又想想要不要准备考公,我初中时历史政治很好,感觉有学Java的毅力,考公应该不是难事。离大四国考省考还有一年多的时间,好好准备时间也很充足。:&nbsp;这段时间又刷到安卓苹果论,x压抑理论,民工论,什么理科男脉冲论,深深的破防了。感觉每条都能对号入座,安卓人,压抑,赛博民工,梭哈Java,间歇性脉冲。感觉这些说法之所以流行,是因为戳中了我们年轻人在内卷中的焦虑,真正的破局,不在于更苦更累,而在于升级认知、善用杠杆、控制风险。:&nbsp;说起来简单,做起来难啊,我一直非常坚定的认为选择大于努力。不过对于普通人没有家庭兜底又有多少选择呢?认知有差距,所谓“选择”,往往只是在有限选项里挑一个不那么糟的。高考后的认知以为互联网计算机赚钱,专科都能干Java,便一头扎了进来,进来一只脚似乎却发现这条路未必适合自己。现在的认知里公务员体制内有编制稳定,基层累赚钱少,觉得“体制内=安稳”,可谁又能保证那不是另一座围城?不过我们还年轻,最不值钱的是时间,有很多的试错成本。现实逼迫着我依旧在焦虑,依旧&nbsp;在内耗,在幻想,在美化自己没选择过的道路。对现有生活的不如意,总会转化为想象当初的自己选择另外一条道路会怎么样,不过我想结局总是差不多的。我们总在美化未曾选择的路,把对现状的不满投射成“如果当初……就好了”。但或许,无论选哪条路,都会有遗憾、焦虑与内耗。区别只在于,哪条路更能让你在深夜醒来时,不那么后悔。想起关羽台词了,自己选择的路,再荒谬也要走完后面说偏了都是自己发牢骚,也没个中心主题,权当发泄情绪了。一个loser的自述,对于牛客985✌遍地走,大厂✌一抓一大把可能没什么感触。我的经历或许微不足道,或许是我内心敏感,在迷茫,在思考,也在挣扎,记录一下这段真实的迷茫。我想,迷茫是成长的开始吧,你感到痛苦,是因为你在成长。祝愿我们都能成为更好自己
时间窃贼:还是得好图才能打好窝 才能钓到在座诸位翘嘴
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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