[关闭]
@ChuckIsReady 2018-04-08T13:21:32.000000Z 字数 956 阅读 615

链家4.8笔试

未分类


不会的问题:
关于算法的装填因子
数字证书有没有包括ip

此处输入图片的描述

  1. //我认为题目意思应该是指开关会使一组灯泡同时灭或亮,那么当灭的灯数小于
  2. //亮的灯数时这一组灯任然应该被点亮,从而总的亮灯数量变大
  3. // 还有一种情况是两组间的开关可以抵消,从而使得总的亮灯数量变大
  4. var n = read_line();
  5. var arr = [];
  6. var light = [];//记录灯泡最终点亮情况
  7. var sumOn = 0;
  8. // 10% 通过
  9. //for(var i =0;i<n;i++){
  10. // arr[i] = read_line().split(" ");//读取每组开关//
  11. // var tempOn = 0;//这一组开关实际上能净点亮的灯泡的计数器
  12. // for(var j= 1;j<=arr[i][0];j++){
  13. // light[arr[i][j]]!=1 ? tempOn+=1 : tempOn-=1 //没有被点亮过或者已经被熄灭的情况下(undefined 或者 0),再次点亮都能增加临时点亮计数器
  14. // }//第一轮循环计算收益
  15. // if(tempOn>0){//【】如果能增加点亮的灯泡
  16. // sumOn += tempOn;//总的点亮数增加
  17. // for(var j= 1;j<=arr[i][0];j++){//【】那么就实施点亮,并对灯泡被点亮与熄灭进行记录
  18. // light[arr[i][j]]= light[arr[i][j]]!=1? 1:0;
  19. // }
  20. // }
  21. //}
  22. // 10% 通过
  23. // 以下为优化方法,每一次操作都进行,然后判断单双数,单数为亮,统计亮的数量,但还是存在不能检查到纯开灯的数组的问题。
  24. // 应该逆向循环再通过检查能不能使得0变1再筛查一遍,不够时间了。
  25. for(var i =0;i<n;i++){
  26. arr[i] = read_line().split(" ");
  27. var tempOn = 0;
  28. for(var j= 1;j<=arr[i][0];j++){
  29. light[arr[i][j]]!=undefined? light[arr[i][j]]++ : light[arr[i][j]] =1;
  30. }
  31. for(var i in light){
  32. light[i] = light[i]%2;
  33. if(light[i])tempOn++;
  34. }
  35. if(tempOn>sumOn) sumOn = tempOn;
  36. }
  37. print(sumOn);
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注