題目描述:
給定乙個字串 text。並能夠在 寬為 w 高為 h 的螢幕上顯示該文字。
字型陣列中包含按公升序排列的可用字型大小,您可以從該陣列中選擇任何字型大小。
您可以使用fontinfo介面來獲取任何可用字型大小的任何字元的寬度和高度。
fontinfo介面定義如下:
inte***ce fontinfo
一串字元的文字寬度應該是每乙個字元在對應字型大小(fontsize)下返回的寬度getheight(fontsize)的總和。
請注意:文字最多只能排放一排
如果使用相同的引數呼叫 getheight 或 getwidth ,則可以保證 fontinfo 將返回相同的值。
同時,對於任何字型大小的 fontsize 和任何字元 ch :
getheight(fontsize) <= getheight(fontsize+1)
getwidth(fontsize, ch) <= getwidth(fontsize+1, ch)
返回可用於在螢幕上顯示文字的最大字型大小。如果文字不能以任何字型大小顯示,則返回-1。
示例 1:
輸入: text = 「helloworld」, w = 80, h = 20, fonts = [6,8,10,12,14,16,18,24,36]
輸出: 6
example 2:
輸入: text = 「leetcode」, w = 1000, h = 50, fonts = [1,2,4]
輸出: 4
example 3:
輸入: text = 「easyquestion」, w = 100, h = 100, fonts = [10,15,20,25]
輸出: -1
注意:
1 <= text.length <= 50000
text 只包含小寫字母
1 <= w <= 107
1 <= h <= 104
1 <= fonts.length <= 105
1 <= fonts[i] <= 105
fonts 已經按公升序排序,且不包含重複項。
方法1:
(1)先通過高度限制,找出所有滿足高度要求的字型的範圍;
(2)然後在滿足高度要求的範圍內,使用二分,找出滿足寬度要求的右邊界;
/**
* // this is the fontinfo's api inte***ce.
* // you should not implement it, or speculate about its implementation
* class fontinfo ;
*/class
solution
int right=0;
int left=0;
while
(rightsize()
)++right;
}//說明所有的字型都不滿足高度要求,直接返回-1
if(right==0)
//二分,找出滿足寬度要求的右邊界
while
(left//確定邊界
if(cur_width<=w)
else
}//說明找到了右邊界
if(left>0)
return fonts[left-1]
;int cur_width=0;
//left為0時,判讀當前字型是否滿足要求
for(
int i=
0;i<26;
++i)
if(cur_width<=w)
return-1
;}};
找出最大的房子
找出最大的房子 include include include using namespace std int r,c 行列數 int rooms 60 60 rooms i j 表示 i j 地方對應的房屋數值 int color 60 60 方塊是否染過顏色標記 int maxroomarea ...
webView 自適應螢幕 的實現
讓webview載入的頁面居中顯示有我知道的幾種方法 第一種方法 websettings settings webview.getsettings settings.setlayoutalgorithm layoutalgorithm.single column layoutalgorithm是乙個...
get請求的最大字元長度
各瀏覽器http get請求url最大長度並不相同,幾類常用瀏覽器最大長度及超過最大長度後提交情況如下 ie6.0 url最大長度2083個字元,超過最大長度後無法提交。ie7.0 url最大長度2083個字元,超過最大長度後仍然能提交,但是只能傳過去2083個字元。firefox 3.0.3 ur...