博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016年微软机试题第一题——FontSize
阅读量:6814 次
发布时间:2019-06-26

本文共 1633 字,大约阅读时间需要 5 分钟。

题目描述:N个段落 P个页面 W的段长 H的页长 一个数组给出每个段落的字数 目标找到符合要求的最大字符大小。

难点:(1)必须根据题目的描述,给出符合条件的字符输入方案;

        (2)使用二分法不断逼近可选择的最大字符大小;

        (3)如何利用判断表达式实现取整,和选择;

重要思想:最令人迷茫的地方在于,字符和段和页面之间的关系;必须要看清他们之间的层次关系;字符分割统计出段,段统计分割出现页面。利用页面的比较产生可行的结果。

1 package shounue; 2 import java.util.Scanner; 3 public class FontSize { 4     public static void main(String[] args) { 5         Scanner cin = new Scanner(System.in); 6         int number = cin.nextInt(); 7         while (number > 0){ 8             int n = cin.nextInt(); 9             int p = cin.nextInt();10             int w = cin.nextInt();11             int h = cin.nextInt();12             int[] array = new int[n];13             for (int i = 0;i < n;i++){14                 array[i] = cin.nextInt();15             }16             int left = 1;17             int right = Math.min(w, h);18             int result = 0;19             while (left <= right){20                 int mid = (left + right) / 2;21                 int column = w / mid;22                 int row = h / mid;23                 int count = 0;24                 for (int i = 0;i < n;i++){25                     count += ((array[i]%column) == 0 ? (array[i]/column) : (array[i]/column + 1));26                 }27                 int page = ((count%row) == 0 ? (count/row) : (count/row + 1));28                 if (page <= p){29                     result = mid;30                     left = mid + 1;31                 }else {32                     right = mid - 1;33                 }34             }35             System.out.println(result);36             number--;37         }38     }39 40 }

 

转载于:https://www.cnblogs.com/ProWhalen/p/5361653.html

你可能感兴趣的文章
【转】Spark性能优化指南——基础篇
查看>>
Android Studio 运行、编译卡死的解决办法
查看>>
Json转Java Bean
查看>>
C# 合并及拆分Word文档
查看>>
Liferay中actionURL能够执行后台方法 ,但是页面不跳转问题解决方案
查看>>
libyuv 编译for ios
查看>>
加密安装Kali Linux条件
查看>>
关于Cocos2d-x中UI按钮的定义
查看>>
IPTables系列:如何配置Ubuntu 14.04中的IPTables防火墙
查看>>
swift:自定义UICollectionViewFlowLayout
查看>>
转】MYSQL性能调优与架构设计之select count(*)的思考
查看>>
MFC Initinstance中DoModal()返回-1
查看>>
抢红包的红包生成算法
查看>>
1 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建
查看>>
升级到 PHP-7 遇到的坑 及 经验分享
查看>>
Android 关于ListView中adapter调用notifyDataSetChanged无效的原因
查看>>
redis哨兵配置
查看>>
VC++/MFC 最常用宏和指令
查看>>
外国javascript资源搜索
查看>>
DataTable中数据针对某列数据去重
查看>>