2021 01 24 第 225 場周賽

2021-10-17 23:07:26 字數 2068 閱讀 1718

思路:只需要列舉時間,然後看是否匹配,匹配的時間裡面取最大的就可以了。

思路:這道題一開始的時候wa了一次,以為是簡單的列舉三種情況就好了,其實並不是。需要的是列舉以下情況:

a以字母α最大需要修改的個數,可以通過字首和的方式求出。同理, b 以字母β最小需要修改的個數,也可以通過字首和的方式求出。所以這題就可以做出來了。

思路:就是個二維字首和的模板,來計算二維字首異或值。然後把它們放到乙個list裡面,取出第k大的值即可。

class

solution

else

list.

add(a[i]

[j]);}

} collections.

sort

(list,

newcomparator

()})

;return list.

get(k-1);}}

有乙個立方體房間,其長度、寬度和高度都等於 n 個單位。請你在房間裡放置 n 個盒子,每個盒子都是乙個單位邊長的立方體。放置規則如下:

給你乙個整數 n ,返回接觸地面的盒子的 最少 可能數量。

思路:其實就是一道數學題,當時比賽過程中覺得太麻煩沒仔細推。賽後看題解發現規律其實也還蠻簡單的

底下盒子數

總盒子數

盒子總量增加00

0111

2213

4245

1572

61037

111底下的盒子每增加乙個,可以放置的總盒子增加數呈現規律性:1,1,2,1,2,3,1,2,3,4……

那麼這樣**寫起來就簡單了。。。

class

solution

}return bottom;

}}

更快速的方法,我們可以先不停的加盒子數,直到總數超過給定n的大小,再開始移除。移除的時候,如果當前高度是height,每想要減小乙個底下盒子數,需要拿掉的盒子數為:height,height-1,height-2……

class

solution

for(

int i = height;i >

0&& sum >= n;i--

)// 這時候盒子總數已經比n小,所以上次操作是不能進行的,需要加回來

return bottom+1;

}}

第123場周賽

1,989.陣列形式的整數加法 方法一 逐位相加 思路 讓我們逐位將數字加在一起。舉乙個例子,如果要計算 123 與 912 的和。我們順次計算 3 2 2 1 1 9。任何時候,當加法的結果大於等於 10 我們要將進製的 1 加入下一位的計算中去,所以最終結果等於 1035。演算法 我們可以對以上...

第191場周賽

class solution return res 這裡有個注意的點,maxh maxw這兩個int的值的乘積會超過int的範圍,所以要先轉換為double class solution maxh maxh h horizontalcuts hcut 1 maxh h horizontalcuts ...

第193場周賽

class solution return res class solution map maps new treemap int len arr.length int max 1 for int i 0 i else int totoalnum maps.size arraylist sorted...