【每日前端笔试】17春招京东js编程题

算起来,前端也学了有4个月了,春招参加了很多笔试,但是结果都不如意。

前几天看到有大神说自己找不到实习,回头想想自己,

什么也都不会,笔试从来ac不了,那怎么找实习呢?

不要着急,慢慢来,总会找到自己的方向的!


我在笔试时,逻辑十分混乱,obj属性就有3个,循环了4次,还排序了3次,才勉勉强强ac了0.1,最后发现理解错题意了,悲催

所以,下次做题前,一定一定完全理解题意!


题目描述

公司最近新研发了一种产品,共生产了n件。有m个客户想购买此产品,第i个客户出价Vi元。为了确保公平,公司决定要以一个固定的价格出售产品。每一个出价不低于要价的客户将会得到产品,余下的将会被拒绝购买。请你找出能让公司利润最大化的售价。

输入

输入第一行二个整数n(1<=n<=1000),m(1<=m<=1000),分别表示产品数和客户数。

接下来第二行m个整数Vi(1<=Vi<=1000000),分别表示第i个客户的出价。

输出

输出一行一个整数,代表能够让公司利润最大化的售价。

自己ide编写

var n=5;

var m=4;

var arr=[2,8,10,7];

var temp={//保存最终结果数据

price:0,

profit:0

}

for (var i = 0; i < m; i++) {//外层循环,获取每一个价格

var price=arr[i];

var count=n;

var profit=0;

for (var j = 0; j < m; j++) {//内层循环,如果小于price,利润+price

if (count<1) {break;}

if (arr[j]>=price) {

profit+=price;

count--;//控制件数

}

}

if (profit>temp.profit) {

temp.price=price;

temp.profit=profit;

}

}

document.write(temp.profit+'  '+temp.price);

这个版本ac0.4

所有测试数据正确率为40.00000059604645%!

可以尝试再次完善代码,并调试,争取全部AC通过

和正确结果对比,发现是输入格式有问题,

我的是(没有考虑一行写不下,会到多行)

var line;

line=read_line().split(' ');

var n=parseInt(line[0]);

var m=parseInt(line[1]);

var arr = [];

var nextline;

nextline=read_line().split(' ');

for(var i=0;i<m;i++){

arr.push( parseInt(nextline[i]));

}

而正确答案是

var line;

var arr=[];

while(line=read_line()){

line=line.split(' ');

for(var i=0;i<line.length;i++){

line[i]=parseInt(line[i]);

}

arr=[].concat(arr,line);

}

n=arr[0];

m=arr[1];

arr.shift();

arr.shift();


然而,这不是最好的办法

这个解法和我当时笔试时想的一样,但他的非常简洁

var n=5;

var m=4;

var arr1=[2,8,10,7];

var temp={//保存最终结果数据

price:0,

profit:0

}

var arr=arr1.sort(function(a,b){

return b-a;//降序

});

//document.write(arr);

for (var i = 0; i < m; i++) {//外层循环,获取每一个价格

var price=arr[i];

var count=n;

var profit=0;

profit=price*Math.min(n,i+1);

if (profit>temp.profit) {

temp.price=price;

temp.profit=profit;

}

}

document.write(temp.price);

这个一次就过了,开心!

ps:Math.min()里面不可以是数组!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,542评论 0 41
  • 把你的影子加点盐 腌起来 风干 老的时候 下酒 偶然看见一首这样有意思的小诗,感...
    潇湘汐苑阅读 2,312评论 3 2
  • 两天的线下课很精彩,让我收获到的东西的确非常多,也很幸运自己能够报名参加这个课程。 从线上走到线下,第一次接触到叶...
    曦冉持续行动成长记阅读 4,095评论 5 9
  • 1.在别人没意识到问题前,很多建议都被当成挑衅。 2.建议要点到为止,说出来是情意,接不接受是别人的权利。 3.别...
    4ea5ada36edb阅读 1,198评论 0 1

友情链接更多精彩内容