京东8.24算法岗笔试

由于选择题20个咱也实在是记不住(其实也没人关心🤣)所以后续就只展示算法题,我自己当时是只做出来1.1道。代码是我在考完后又复盘的时候完善的。由于我是markdown写的,所以部分地方可能看起来很奇怪,原始版本和代码可以去我的主页lx02918.github.io去看,欢迎大家评论指正(我就怕我自己的代码有啥问题,如果有问题请各位一定要指出来,我马上改!)

第一题
给你一个整数,请你判断0 ~ N之间有多少个数是100的正整数倍。

输入描述:

输入的第一行给出一个整数N 输出描述:输出0~N之间有多少个数是100的整数倍。

输出描述:

输出0 ~ N之间有多少个数是100的整数倍。

示例1:

输入:2000

输出:20

思路
签到题,直接用 N 去掉最后两位就可以,能够避免出现负数。

第二题
给定一个大小为 n * m 的网格板,网格板是由 n * m 个 1 * 1 的单元格组成,最初所有单元格都是 白色 的;现在给出K个操作:

𝑐 𝑥 𝑦  将位置为 (𝑥,𝑦) 的单元格涂成黑色

𝑙 𝑥 𝑦 将位置为  (𝑥,𝑦) 的单元格向左寻找第一个白色单元格,将其涂成黑色

𝑟 𝑥 𝑦 将位置为 (𝑥,𝑦) 的单元格向右寻找第一个白色单元格,将其涂成黑色

𝑢 𝑥 𝑦 将位置为 (𝑥,𝑦) 的单元格向上寻找第一个白色单元格,将其涂成黑色

𝑑 𝑥 𝑦 将位置为 (𝑥,𝑦) 的单元格向下寻找第一个白色单元格,将其涂成黑色

注意:网格板左上角的单元格是 (1,1)

输入描述: 第一行给定 n, m, k 分别代表网格板大小和操作次数

后续给出为每次操作的命令 𝑠𝑖,𝑥𝑖,𝑦𝑖s

1 <= n, m <= 100

1 <= k <= 10^4
1 <= 𝑥𝑖,𝑦𝑖 <= 𝑛 , 𝑚

输出描述:

对于以 l, r, u, d 为操作的给出对应的坐标。没有坐标输出 -1。

示例1:

输入:

5 5 20
c 2 4
c 4 2
r 3 5
c 4 4
c 5 2
u 5 2
c 3 2
c 1 4
l 4 4
c 3 5
c 5 3
c 3 3
c 3 1
u 1 4
c 3 4
r 1 1
d 3 3
d 3 4
c 1 1
c 5 4

输出:

-1
3 2
4 3
-1
1 2
4 3
5 4
思路
初始化网格之后我们需要将所有元素初始化为False。

定义一个函数 find ,借助这个函数对x, y进行操作。需要使用到两个方向增量 d1, d2。

跳出条件为到达边界或找到未占位的我位置。

操作上按照四个方向进行操作,同时遇到 c 直接变为 True

第三题
有 n 根木棍排成一列,第 i 根木棍的长度为 𝑎𝑖。

请你从中选出一个最长的子区间,使得区间内任意三根木棍都能构成一个三角形。只需要输出选中的区间端点即可。

输入描述:

第一行整数 n ,表示木棍的数量

第二行n个整数 第 𝑖 个整数 𝑎𝑖,表示第 𝑖 根木棍的长度

输出描述: 输出两个整数,表示最长的满足条件的区间的两个端点,如果有多个满足条件的,输出左端点最小的区间。

思路
区间直接考虑到我们的滑动窗口。

首先固定好我们滑动窗口的两个边界,然后不断进行遍历,更新最大长度。滑动窗口内需要在 最小值 + 次小值 <= 最大时对右侧边界进行操作。这里我们获取最小值和次小值的方法是借助了 SortedList()。在更新后记录边界,最后输出即可。

这题的关键点就在于滑动窗口和有序集合,有序集合可以大大减少我们的代码量。

这里举我自己的反例,我当时由于太紧张,直接考虑到指针了,虽然考虑到 sort() 去排序,但是我后续的思路错了,结果这道题就失误了。

这里还要说一下,我的代码是python写的,如果有需要其他版本的可以去Chat GPT上把该题的完整部分复制到里面让GPT去翻译,这样的准确度也会更高一些,啾咪💖#牛客创作赏金赛#
全部评论
第二道题的输入输出是匹配的嘛?感觉有点奇怪?
点赞 回复 分享
发布于 2024-09-20 13:40 上海
现在最慌选择题,我看选择题java c c++ sql混着出,但是我概念清晰的只有c++。。。。
点赞 回复 分享
发布于 2024-09-13 16:29 俄罗斯
给面了吗
点赞 回复 分享
发布于 2024-08-27 02:26 吉林

相关推荐

09-25 09:20
已编辑
门头沟学院 Java
最近看到很多优秀的同学开始在牛客上用意向书打牌了,真是的羡慕死了。这些大佬什么时候才能释放一些Offer呢?这次秋招真的是感受到了大厂实习的重要性,希望学习学妹们一定重视大厂实习,尽量秋招之前去大厂混个实习经历。本人学历还算中等,本2硕9。本2学校不出名,很多外省的人都没听到过。硕士的学校还挺好的,是网上风评很好的一个学校。9月12日更新本人没有大厂实习的经历,只有一段银行的实习经历和一段国企的实习经历。目前本人的秋招战绩如下:1.快手-秋招提前批简历挂,秋招正式批简历挂2.拼多多-秋招提前批简历挂,秋招正式批简历挂3.蚂蚁-秋招正式批简历挂4.淘天-秋招正式批简历挂5.米哈游-秋招正式批简历挂6.滴滴-秋招提前批简历挂7.小红书-二面之后挂8.美团-第一轮二面之后挂,被重新捞起来了。第二轮一面的时候面试官说没有大厂实习经历,希望能提前来实习9.腾讯-HR面之后挂10.字节-HR面之后挂(HR说经历可能不如别人优秀,排序排不过。当初最开始约面的时候,HR打电话就问我的基本情况,第一个问题就问的有没有在大厂做过高并发项目,唉,没大厂实习真是心累)11.小鹏汽车-HR面之后等了一个1个月挂掉了12.虾皮-HR面之后等了一个月了,目前还没消息13.京东-HR面之后两周了,目前还没消息14.中兴-三面之后排序挂9月17日更新美团二面挂了,二面距离一面相隔一周,二面的时候也没让自我介绍,面试官也没看我的简历,感觉应该是不太想要我哈哈哈。9月25更新腾讯又给我捞起来了,免面试直接发意向了美团又有一个部门捞我起来面试,直接拒掉了。每次HR面都会被HR问到类似的问题:1.&quot;我看同学都是一些小企业、国企的实习经历,为什么会选择秋招投递互联网大厂?&quot;2.&quot;互联网大厂的工作压力很大,同学没有过相关的经历,能适应吗?&quot;3.&quot;我们公司软件系统承载的QPS都是非常高的,我看同学没有高并发系统的开发经历,同学觉得自己能胜任这个工作吗?&quot;目前大厂的实习经历真的很重要,学弟学妹们多多准备吧,不要像我一样
点赞 评论 收藏
分享
bg:本211&nbsp;cs专业&nbsp;智育rank11%左右(实际证明互联网的话学校成绩确实没有任何用,该舍弃就舍弃),美团&nbsp;字节&nbsp;腾讯三段实习,两段java一段cpp总共一年,秋招主投大厂传统后端开发以及搜广推infra部门已经很久没接到新的面试了,最近要么就系统学学cpp,要么就摆摆烂歇一歇秋招的战略还是只投了比较主流的互联网大厂&nbsp;&amp;amp;&nbsp;中大厂,投的没有很多,集中精力希望面最少的试自己7月底开始投递,到9月初基本结束了所有的面试,后面有机会的话应该只会面面腾讯1.意向的:字节跟美团也是自己目前意向度最高的两家公司,业务都比较核心2.走完流程泡池子排序等发意向的:java:滴滴&nbsp;快手&nbsp;百度cpp:虾皮&nbsp;京东这五家都比较墨迹,早早走完流程一直在泡,感觉池子深不见底,而且一直在问手头其他公司意向情况,感觉就是希望要个'忠诚'的人,业务也都还算核心业务,但自己意向程度不高3.二面挂拼多多提前批二面算法题做的一般挂掉了,后面懒得再投了4.一面挂蚂蚁前面聊的还不错,不知道为啥挂掉了。。。5.简历挂阿里系除了蚂蚁全部没给面试机会阿里云只要硕士淘天跟控股情有可原,暑期当时笔试做烂了,秋招也没给机会阿里国际当时暑期一面完一直懒得做笔试,结果秋招不知道什么原因,简历投不进去,有点难绷6.没动静的腾讯&nbsp;&amp;amp;&nbsp;TME,至今评估中,今年鹅系秋招感觉没有多少hc7.放弃推进的饿了么不想做笔试了自动挂小红书一志愿搜广推引擎简历挂,二志愿商业化后端不想做笔试了放弃推进秋招差不多就这样了,剩下的日子歇一歇了~
我的秋招日记
点赞 评论 收藏
分享
评论
5
6
分享

创作者周榜

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