今天參加了力扣和位元組跳動聯合舉行的周賽,也是第一次參加周賽,乙個半小時,一共四個題,只做出來了兩個題,第三個題有了一點思路,奈何沒時間了,但收穫了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,...