9.9京东第五期前端笔试AK
这次很简单
第一题很简单哈直接做
第二题非常简单的dp,跟跳台阶差不多
第三题利用了前缀和的思想,主要是看数学式,而且大数卡了20%会
所有数的地方改longlong
let t = 0;
let n = 0;
let mod = 1000000009;
let tokens = [];
while(line = await readline()){
if(t==0){
n = parseInt(line);
}else{
tokens = line.split(' ');
tokens = tokens.map((p)=> {return parseInt(p)})
}
t++;
}
let ans = tokens[0];
let dp = new Array(n+1).fill(0);
let sum1 = tokens[0];
let sum2 = tokens[0];
dp[0] = tokens[0];
let tot = 0;
for(let i=1;i<n;i++){
dp[i] = dp[i-1] + (i+1)*tokens[i];
ans += dp[i];
ans = ans % mod;
sum1 = sum1 + tokens[i];
sum1 = sum1 % mod;
sum2 = sum2 + sum1;
sum2 = sum2 % mod;
}
for(let j=0;j<n;j++){
tot += ans;
ans = ans - sum2;
ans = ans % mod;
tot = tot % mod;
sum2 = sum2 - (n-j)*tokens[j];
}
console.log(tot)
第一题很简单哈直接做
第二题非常简单的dp,跟跳台阶差不多
第三题利用了前缀和的思想,主要是看数学式,而且大数卡了20%会
所有数的地方改longlong
let t = 0;
let n = 0;
let mod = 1000000009;
let tokens = [];
while(line = await readline()){
if(t==0){
n = parseInt(line);
}else{
tokens = line.split(' ');
tokens = tokens.map((p)=> {return parseInt(p)})
}
t++;
}
let ans = tokens[0];
let dp = new Array(n+1).fill(0);
let sum1 = tokens[0];
let sum2 = tokens[0];
dp[0] = tokens[0];
let tot = 0;
for(let i=1;i<n;i++){
dp[i] = dp[i-1] + (i+1)*tokens[i];
ans += dp[i];
ans = ans % mod;
sum1 = sum1 + tokens[i];
sum1 = sum1 % mod;
sum2 = sum2 + sum1;
sum2 = sum2 % mod;
}
for(let j=0;j<n;j++){
tot += ans;
ans = ans - sum2;
ans = ans % mod;
tot = tot % mod;
sum2 = sum2 - (n-j)*tokens[j];
}
console.log(tot)
全部评论
我把复杂度从on2 降到on 还是只有 20 这题我改了快一小时了 直接放弃了
佬,本还是硕呀
第三题在这
最后一题 找规律找了 50分钟= - = 还好过了
第三题为啥20啊
相关推荐
点赞 评论 收藏
分享
01-02 17:26
辽宁对外经贸学院 产品运营
合适才能收到offe...:项目岗是什么岗?我看你有段好像跟策划运营相关,如果找运营的话第三段经历写详细点儿。
个人建议是把自我评价删了换成专业技能放在工作经验上或者下面。学生会那个也可以删,把第一个包装成店铺运营,写4-6给点。第三个也是写4-6个点。注意工作内容➕部分数据。
投递的时候BOS招呼用语改一下,换成我有xx工作经验,熟练掌握xx技能样式,也可以简历截图然后直接发送。 点赞 评论 收藏
分享
点赞 评论 收藏
分享
查看1道真题和解析