思路:只需要列舉時間,然後看是否匹配,匹配的時間裡面取最大的就可以了。
思路:這道題一開始的時候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...