第一题

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;public class Main {public static void main(String[] args) {Map<Integer, Integer> m = new HashMap<Integer, Integer>();System.out.println("请输入第一行:");Scanner s = new Scanner(System.in);String first = s.nextLine();String[] line1 = first.split(" ");int n = Integer.parseInt(line1[0]);// 时间段数int p1 = Integer.parseInt(line1[1]);int p2 = Integer.parseInt(line1[2]);int p3 = Integer.parseInt(line1[3]);int t1 = Integer.parseInt(line1[4]);int t2 = Integer.parseInt(line1[5]);System.out.println("请输入时间段:");String str1;int[] arr = new int[2 * n];for (int i = 0; i < n; i++) {Scanner s1 = new Scanner(System.in);str1 = s1.nextLine();if (!str1.equals("")) {String[] str = str1.split(" ");int from = Integer.parseInt(str[0]);int to = Integer.parseInt(str[1]);m.put(from, to);arr[2 * i] = from;arr[2 * i + 1] = to;}//s1.close()  这个地方不能调用s1.close()方法,这个方法在关闭流的同时还会关闭system.in}s.close();int count = computer(m, p1, p2, p3, t1, t2);System.out.println("常规时间耗电量:" + count);// 这个是对的for (int i = 1,j=1; i < arr.length - 1; i=i+2,j++) {int cha = arr[i + 1] - arr[i];System.out.println("第" + j + "阶段时间差为:" + cha);if (cha <= t1) {count += (cha * p1);System.out.println("*第" + j + "个时段:" + count);} else if (t1 < cha && cha <= t1 + t2) {count += (t1 * p1 + (cha - t1) * p2);System.out.println("**第" + j + "个时段:" + count);} else if (cha > t1 + t2) {count += (t1 * p1 + t2 * p2 + (cha - t1 - t2) * p3);System.out.println("***第" + j + "个时段:" + count);}}System.out.println("总耗电量:" + count);}public static int computer(Map<Integer, Integer> m, int p1, int p2, int p3, int t1, int t2) {int sum = 0;Set<Entry<Integer, Integer>> s = m.entrySet();Iterator<Entry<Integer, Integer>> it = s.iterator();while (it.hasNext()) {// 正常工作总耗电Entry<Integer, Integer> en = it.next();sum += ((Integer) en.getValue() - (Integer) en.getKey()) * p1;}return sum;}
}

测试结果

有时不是不会做,而是时间不够用啊!还是怪自己不够熟练吧。。。

这道题挺简单的,就像是高中时候学的分段函数一样,不同的情况采用不同的计算方式。遇到一个知识点,就是当有多个scanner实例时,应该在执行完全部输入后再调用close()方法关闭流。因为close()方法还会关闭System.in,这样后面如果再调用scanner的话,就会报错:java.util.NoSuchElementException: No line found

第二题

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner s1 = new Scanner(System.in);int num = s1.nextInt();Scanner s2 = new Scanner(System.in);String[] str = s2.nextLine().split(" ");s1.close();s2.close();int len = str.length;if(len == num){int [] value = new int[len];for(int i=0;i<len;i++){value[i] = Integer.parseInt(str[i]);}   System.out.println(computer(value));}else{System.out.println("输入数据有误!");}}public static int computer(int[] str){int count = 0;int len = str.length;int min,max;for(int i=0;i<len-1;i++){if(str[i]>=str[i+1]){max = str[i];min = str[i+1];}else{min = str[i];max = str[i+1];}for(int j=i+1;j<len;j++){if(str[j]>=max){max = str[j];count+=(max - min);}else if(str[j]<=min){min = str[j];count+=(max - min);}else{count+=(max - min);}}}return count;}
}

测试结果

这题也比较简单,用了两个循环。外层循环确定起始点以及最大最小值,内层循环用来遍历起点之后的元素,并判断最大最小值。

第三题

这题看了一眼,没思路。。。哪位大神会的还请指教一下!小弟感激不尽!

贝壳找房2018算法笔试相关推荐

  1. 贝壳找房《2018城市居住报告》:新一线租房量持续攀升

    2019年1月24日,贝壳找房发布<2018城市居住报告>,聚焦租房和二手房交易人群,盘点分析了北京.上海.深圳.南京.武汉.长沙.重庆.成都.合肥等9大房产交易城市现状.报告发现,过去一 ...

  2. 贝壳找房 2019校招 研发类试卷C++ 编程题 2018.08.19

    贝壳找房 2019校招 研发类试卷编程题 C++ 2018.08.19 遍历的同时求出最小值min 和 村庄高度和sum,sum-min即可 #include <iostream>usin ...

  3. 数据吞吐量高达800亿条!实时计算在贝壳找房的应用实践

    摘要:本文由贝壳找房实时计算负责人刘力云分享,主要内容为 Apache Flink 在贝壳找房业务中的应用,分为以下三方面: 业务规模与演进 Hermes 实时计算平台介绍 未来发展与规划 重要:点击 ...

  4. 数据吞吐高达 21 亿条!实时计算在贝壳找房的应用实践

    摘要:本文由贝壳找房实时计算负责人刘力云分享,主要内容为 Apache Flink 在贝壳找房业务中的应用,分为以下三方面: 业务规模与演进 Hermes 实时计算平台介绍 未来发展与规划 重要:点击 ...

  5. 案例分享 | TensorFlow 在贝壳找房中的实践

    文:贝壳找房技术团队 贝壳找房作为行业领先的房产服务互联网平台,通过开放数据资源和技术能力,聚合和赋能全行业的服务者,打造产业互联网下的"新居住"品质服务生态,致力于为全国家庭的品 ...

  6. 原滴滴AI Labs负责人叶杰平加入贝壳找房,出任首席科学家

    (给机器学习算法与Python学习加星标,提升AI技能) 大数据文摘出品,作者:刘俊寰 9月7日,根据滴滴内部邮件,滴滴出行副总裁.滴滴出行研究院副院长.AI Labs负责人叶杰平将于近期离开滴滴. ...

  7. Kylin 在贝壳找房的实践及 HBase 优化

    近期Apache Kylin Meetup上,贝壳找房高级研发工程师冯亮分享了Kylin在贝壳找房的实践,从性能调优上向大家介绍如何通过对 HBase 的优化来保障重点业务的查询性能,实现 Kylin ...

  8. 贝壳找房挖到AI大牛叶杰平,房产中介转型需要技术,高估值更需要

    杨净 发自 凹非寺  量子位 报道 | 公众号 QbitAI 前滴滴AI实验室负责人叶杰平,去贝壳找房了. 没错,从"行"到"住",从"车" ...

  9. 为公寓运营商提供SaaS管理系统,寓小二获贝壳找房5000万元A轮融资...

    消息,公寓SaaS管理平台寓小二已获得贝壳找房5000万元A轮融资.同时,贝壳找房CTO闫觅将会加入寓小二董事会. 本轮融资后,寓小二将扩大和升级产品技术团队,以及全国25城线下服务体系搭建,为不断增 ...

最新文章

  1. Linux-profile、bashrc、bash_profile之间的区别和联系
  2. Java基础:IO流之File类
  3. EIGRP Metric计算
  4. 【模板】扩展中国剩余定理(EXCRT)
  5. 目标跟踪从0到1:算法与实践
  6. 错误:ORA-28002: the password will expire within 7 da
  7. 如何调用 DLL 中的函数
  8. 回文_Manacher算法
  9. 关于MapReduce中自定义Combine类(一)
  10. office另存为pdf的加载项_Word怎样转换成PDF
  11. 对数频率特性曲线的绘制
  12. visual studio 2019/2022 安装时卡住,一直正在提取文件时的亲测有效的解决方案
  13. 关于vue的组件重新加载
  14. 安装sts插件遇到的问题,cannot perform
  15. Unity云渲染开源框架UnityRenderStreaming使用说明
  16. UE5学习笔记(五)——地形及地表材质
  17. 华为无线设备配置Mesh业务
  18. 求导——基本初等函数的导数公式
  19. English语法_名词性从句 - what
  20. Window 下我的电脑“管理”打不开解决方案

热门文章

  1. ABAP调用外部webservice 问题
  2. python 高斯过程_1.7. 高斯过程
  3. postman接口批量测试
  4. 开源游戏服务器框架NoahGameFrame(NF)服务器端环境搭建(二)
  5. Android Things:外设I/O接口-UART
  6. 强化云原生基础服务,焱融科技 YRCloudFile 与秒云完成产品兼容性互认证
  7. 百度自然语言接口调用
  8. 突然的:图形设备驱动程序错误代码 43 -(已解决)
  9. 【kali Linux 的1024种玩法】一.在VMware Workstation上安装Kali Linux 2020.1(超详细!)
  10. 提高效率5款多功能实用软件推荐