位元組跳動 力扣 第197場周賽

2021-10-08 02:09:34 字數 1819 閱讀 6549

今天參加了力扣和位元組跳動聯合舉行的周賽,也是第一次參加周賽,乙個半小時,一共四個題,只做出來了兩個題,第三個題有了一點思路,奈何沒時間了,但收穫了200枚扣幣,也是很開心了!下面是我本次參賽的前兩題。

題一:好數對的數目

這個題目,我的解法是從左往右迴圈,共兩層迴圈,第一層迴圈各個元素,第二層從第一層元素的下乙個元素相比,判斷是否滿足nums[i]=nums[j]且ivar n=0;

//好數對的數目

for(

var i=

0;i1;i++)}

}return n;該題用時6min,因為怕出錯罰時,所以在本地操作了一遍,耽誤了一些時間。

題目二:僅含1的子串數

看到這個題,一時傻了眼,根本不知道思路從**來,剛開始還想用迴圈來找,結果發現根本不行(可能是我太菜了),接下來我想它們之間可能存在著某種規律,就開始找規律,運氣還可以,找到了規律,任何乙個字串的所有子串數目為

字串長度(字串長度+1))除以2+1;1為空串,在此題中不考慮;*

找到這個規律後,我就想如果能夠把只含1的字串分割出來,然後求它的子串,問題不就解決了嗎?且每個只含1的字串都被0給隔開了,所以我就以0為分割點進行了字串的分割;

**如下:

var i=
0,m=0;

s=s.

split

("0");

//以0為分割點進行字串分割為陣列

while

(ii++;}

return m;用時40min,難度中等,太菜了!

題目三:概率最大的路徑

本題看到了這個字,我就有點不知所措了,因為總時間只有乙個半小時,所以只有一點思路,該思路還只可以實現三個節點的,需要我認真思考思考!

我的思路就是:將start與end節點組成乙個陣列a,迴圈遍歷陣列edges,查詢其中內容是否和陣列a相同,若相同,就記下這個陣列下的概率;若不相同,就與edges中的下個元素用concat連線起來,觀察是否能夠達到要求,若能達到要求,則將它們的概率相乘記錄起來,最後返回記錄值中最大的那個數。

我的**如下:

var a=
newarray()

;var b=

newarray()

; a.

push

(start)

; a.

push

(end)

;for

(var i=

0;i)else}}

return

(math.

max(m,n)

);這個思路只能實現3個節點的,大於3的無法找到實現,很大的乙個bug!

題目四:服務中心的最佳位置

該題完全沒有思路,你有思路嗎?歡迎一起討論。

以上題目均來自力扣:題目位址

第 197 場力扣周賽題解

5460.好數對的數目 思路 直接按照題目要求找就可以啦 class solution else last 1 return int ans 5211.概率最大的路徑 思路 最短路變形,沒什麼好說的,因為n很大,我這裡採用spfa演算法。class solution double dp list l...

力扣第165場周賽

a 和 b 在乙個 3 x 3 的網格上玩井字棋。井字棋遊戲的規則如下 玩家輪流將棋子放在空方格 上。第乙個玩家 a 總是用 x 作為棋子,而第二個玩家 b 總是用 o 作為棋子。x 和 o 只能放在空方格中,而不能放在已經被占用的方格上。只要有 3 個相同的 非空 棋子排成一條直線 行 列 對角線...

力扣第 202 場周賽

傳送門 5185 存在連續三個奇數的陣列 給你乙個整數陣列 arr,請你判斷陣列中是否存在連續三個元素都是奇數的情況 如果存在,請返回 true 否則,返回 false 示例 1 輸入 arr 2,6,4,1 輸出 false 解釋 不存在連續三個元素都是奇數的情況。示例 2 輸入 arr 1,2,...