四 矩陣內船隻的數量(Biweekly14)

2021-10-01 04:33:00 字數 1573 閱讀 6135

題目描述:

(此題是 互動式問題 )

在用笛卡爾座標系表示的二維海平面上,有一些船。每一艘船都在乙個整數點上,且每乙個整數點最多只有 1 艘船。

有乙個函式 sea.hasships(topright, bottomleft) ,輸入引數為右上角和左下角兩個點的座標,當且僅當這兩個點所表示的矩形區域(包含邊界)內至少有一艘船時,這個函式才返回 true ,否則返回 false 。

給你矩形的右上角 topright 和左下角 bottomleft 的座標,請你返回此矩形內船隻的數目。題目保證矩形內 至多只有 10 艘船。

呼叫函式 hasships 超過400次 的提交將被判為 錯誤答案(wrong answer) 。同時,任何嘗試繞過評測系統的行為都將被取消比賽資格。

示例:

輸入:ships = [[1,1],[2,2],[3,3],[5,5]], topright = [4,4], bottomleft = [0,0]

輸出:3

解釋:在 [0,0] 到 [4,4] 的範圍內總共有 3 艘船。

ships 陣列只用於評測系統內部初始化。你無法得知 ships 的資訊,所以只能通過呼叫 hasships 介面來求解。

0 <= bottomleft[0] <= topright[0] <= 1000

0 <= bottomleft[1] <= topright[1] <= 1000

注意每次二分的結束的條件:

class solution 

private int count(int[

] topright, int[

] bottomleft)

; if(sea.hasships(a,a))}}

return res;

} int res = 0;

int[

] a1 =

; int[

] a2 =

; if(sea.hasships(a1,a2))

res += count(a1,a2)

; int[

] a3 =

; int[

] a4 =

; if(sea.hasships(a3,a4))

res += count(a3,a4)

; int[

] a5 =

; int[

] a6 =

; if(sea.hasships(a5,a6))

res += count(a5,a6)

; int[

] a7 =

; int[

] a8 =

; if(sea.hasships(a7,a8))

res += count(a7,a8)

;return res;

}}

圓形靶內的最大飛鏢數量

1453.圓形靶內的最大飛鏢數量 牆壁上掛著乙個圓形的飛鏢靶。現在請你蒙著眼睛向靶上投擲飛鏢。投擲到牆上的飛鏢用二維平面上的點座標陣列表示。飛鏢靶的半徑為 r 請返回能夠落在 任意 半徑為 r 的圓形靶內或靶上的最大飛鏢數。資料規模 點的個數n 100,r 5000 對題目進行解析,就是要找乙個圓心...

sql 統計7天內 每天的總數量

說到統計,首先想到 group by 7天之內,資料庫資料的時間 2020 04 22 18 27 29.000 這樣肯定不行,那就格式化時間 select convert varchar 100 getdate 23 2020 08 03 這樣就好統計了 然後在計算7天之前的方法 select c...

Oracle統計每天指定時間段內的數量

比如我要統計每天晚上8 00到晚上12 00的訪問量,重點其實就是日期之間的格式轉換和拼接,即to date和to char的靈活應用 select to char t.accesstime,yyyy mm dd 訪問量,to char t.accesstime,yyyy mm dd 時間 from...