京东9.9笔试

这次编程题很简单,第一道求最大乘积,直接排序,然后从大到小遍历乘相邻两个数,如果差距大于k就跳过,记得用long,不然只能过80%。
第二题简单dp,dp[i]=min(dp[i-1],dp[i-2])+num[i]。
第三题有点难,暴力只能过20,要数学方法。推导出的公式是nums[i]*(n-i)*(i+1)*(i+2)/2。具体推导公式有点没精力写了,自己写的乱七八糟的草稿纸拿出来凑个图吧#京东笔试#
全部评论
我第一题咋用了long还是80。。第三题我想的是前缀和,但最后时间不够了,暴力过
点赞 回复 分享
发布于 2023-09-09 21:08 重庆
能帮忙看看为什么才20吗 const { readline, print } = require("@ip-algorithmics/codeforces-io"); function calculateResult(n, a) { const MOD = 1e9 + 7; let result = 0; let tmp = 0; for (let i = 0; i < n; i++) { tmp += (i + 1); result += (a[i] * tmp * (n - i) % MOD); result %= MOD; } return result; } let nums = readline(); let line = readline(); let arr = line.split(" ").map(Number); print(calculateResult(nums, arr));
点赞 回复 分享
发布于 2023-09-09 21:15 江苏
我记得有不能重复选,想问下这种情况该怎么处理呀
点赞 回复 分享
发布于 2023-09-09 21:27 北京

相关推荐

一个菜鸡罢了:哥们,感觉你的简历还是有点问题的,我提几点建议,看看能不能提供一点帮助 1. ”新余学院“别加粗,课程不清楚是否有必要写,感觉版面不如拿来写一下做过的事情,教育经历是你的弱势就尽量少写 2. “干部及社团经历”和“自我评价”删掉 3. 论文后面的“录用”和“小修”啥的都删掉,默认全录用,问了再说,反正小修毕业前肯定能发出来 4. 工作经验和研究成果没有体现你的个人贡献,着重包装一下个人贡献
点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
评论
5
收藏
分享
牛客网
牛客企业服务