LeetCode第232場周賽

2021-10-22 03:18:29 字數 2309 閱讀 9434

從4個方面考慮

s1==s2,直接true

s1和s2裡只有乙個位置不同,返回false

s1和s2裡有兩個位置不同,swap後,s1==s2,返回true

s1和s2裡有多於兩個位置不同,swap後,不能保證s1==s2,返回false

class

solution

int length = s1.

length()

;int p1 =-1

, p2 =-1

, count =0;

char

c1 = s1.

tochararray()

, c2 = s2.

tochararray()

;for

(int i =

0; i < length; i++

)else

if(count ==2)

else}}

if(p1 !=-1

&& p2 !=-1

)else

return

newstring

(c1)

.equals

(new

string

(c2));

}}

記錄所有的邊集結點的出現次數,最後統計次數等於n的,就是中心節點。

class

solution

for(

int i =

0; i <

100001

; i++)}

return0;

}}

看題解看到乙個偷懶的寫法,思路還是很巧妙的。

class

solution

}

選擇班級的時候,要保證,放入聰明學生的這個班級,比其他所有班級放入聰明學生通過率增高的多,才能使最後的平均通過率最大。

乙個班級,放入乙個聰明學生,增長率是pas

s+

1.0tot

al

+1.0

−1.0×p

asst

otal

\frac-\frac

total+

1.0p

ass+

1.0​

−tot

al1.

0×pa

ss​。

再看extrastudents的資料範圍1≤e

xtra

stud

ents

≤105

1 \le extrastudents \le 10^

1≤extr

astu

dent

s≤10

5。用優先佇列維護通過率的增長率,每次把乙個聰明學生放入班級。

注意用double,因為浮點數會有誤差。

class

solution

else

if(o1.rate > o2.rate)

else})

;for

(int

c : classes)

while

(extrastudents >0)

double total =0;

while

(!priorityqueue.

isempty()

)return total / classes.length;

}classt}

}

具體解釋寫在**的注釋裡了,思路還是比較直接的。

class

solution

while

(right <= length -

1&& nums[right]

>= nums[k]

)// 此時nums[left]和nums[right]都小於nums[k]了,在計算result的時候,要把left和right位置都減掉,不能算在內

// 下一步需要更新nums[k]了,在更新之前,求一次當前的最大值

result = math.

max(result, nums[k]

*(right - left +1-

2));

if(left <

0&& right > length -1)

if(left >=

0&& right <= length -1)

else

if(left <0)

else

}return result;

}}

leetcode 第 232 場周賽

第一次成功 ak leetcode 周賽,決定寫篇部落格記錄一下。這場周賽確實相對簡單一些。目錄給你長度相等的兩個字串s1和s2。一次字串交換操作的步驟如下 選出某個字串中的兩個下標 不必不同 並交換這兩個下標所對應的字元。如果對其中乙個字串執行最多一次字串交換就可以使兩個字串相等,返回true 否...

20210314 力扣第 232 場周賽

僅執行一次字串交換能否使兩個字串相等 找出星型圖的中心節點 最大平均通過率 好子陣列的最大分數 僅執行一次字串交換能否使兩個字串相等 翻譯題目即可 找出星型圖的中心節點 關鍵在於清楚這個中心點出現的次數剛好就是點數 1 最大平均通過率 優先佇列存所有的最大通過率,注意加乙個同學到乙個班裡的通過率提公...

leetcode 第132場周賽

愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字n。在每個玩家的回合,玩家需要執行以下操作 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回true,否則返回false。假設兩個玩家都以最佳狀態參與遊戲。示例 1 輸入 2輸出 true解釋 愛...