題目要求將弱角色的數目統計出來,自己使用\(o(n^2)\)的辦法做的,最後肯定超時了,看了一下題解才明白\(o(n)\)直接就能做出來,這裡排除了排序,算上排序是\(o(nlogn)\)
辦法就是將角色的攻擊力公升序排列,對於攻擊力相同的角色按照防禦力降序排列。
1 5
1 51 2
3 10
4 37 7
7 38 10
9 89 7
排完順序的乙個樣例如上,這樣,我們從尾部開始遍歷,比較防禦力低於當前防禦力max的角色,如果低於即更新count。由於排序特點,在攻擊力相同時當前防禦力一定是大於防禦力max的,只需要比較防禦力即可,一次遍歷即可統計出弱角色數量。
class solution
maxdefend = math.max(maxdefend, property[i][1]);
}return count;
}}
做題還是要耐心的,自己在超時後直接開啟了題解,發現和自己的做法差不多,再分析優化一下感覺單獨還是能做出來的。。。 LeetCode 1996 遊戲中弱角色的數量
leetcode 1996 遊戲中弱角色的數量 題目大意 題解 對於攻擊值相同的角色,我們按照其防禦值從小到大進行排序且按照攻擊值從大到小開始遍歷,這樣就可以保證當前已經遍歷過的最大防禦值角色 q 的防禦值 maxdef 嚴格大於當前角色 p 的防禦值時,則此時 q 的攻擊值一定嚴格大於 p 的攻擊...
LeetCode 55 跳躍遊戲 中等難度
55.跳躍遊戲 題目 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最後乙...
遊戲中的指令碼
現在遊戲裡流行的指令碼有python 和lua 例如魔獸世界就是用lua指令碼來驅動邏輯的。我們為什麼用指令碼,而不是純用c 呢?當然,這與團隊協作以及工作效率有關。c 編譯速度不佳,當乙個專案達到比較龐大的乙個規模時,編譯的時間往往會讓人憤怒了。於是,python出現了。一些重要的演算法實現,圖形...