周賽135
leetcode 1037.有效的迴旋鏢
解題思路:就是判斷三角形的問題,用的斜率方法,座標抽平行另處理,未優化
public boolean isboomerang(int points)
leetcode 1038. 從二叉搜尋樹到更大和樹
解題思路:反向中序遍歷(右子樹-根節點-左子樹)求和,更新節點值
int sum = 0;
void inorder(treenode root)
public treenode bsttogst(treenode root)
leetcode 1039. 多邊形三角剖分的最低得分
解題思路:和題312戳氣球相同解法,題312可能更好理解,原題已給出提示,對於問題a[i]-a[j],選擇點k,將問題分解為a[i]-a[k],a[k]-a[j]兩個子問題,動態規劃求解dp[0][n-1],轉移方程:dp[i][i+l] = min(dp[i][i+l],a[i]*a[k]*a[i+l] + dp[i][k] + dp[k][i+l])
public int minscoretriangulation(int a)
dp[i][i+1] = 0;
}for(int l = 2;l < len;l++)}}
return dp[0][len-1];
}
leetcode 1040. 移動石子直到連續 ii
解題思路:對於maximum_moves,只需要考慮第一次移動,因為之後的每次移動我們都能保證剩餘位置-1;對於minimum_moves,利用長度為stones.length的滑動視窗,滿足視窗內的端點最多,視窗內空餘的端點數量即為最小移動次數。特殊情況:視窗內石子連續,邊緣有空,則需要移動2次。
public int nummovesstonesii(int stones)
int res = ;
return res;
}
leetcode周賽補完計畫(五)
周賽137 leetcode 1046.最後一塊石頭的重量 public int laststoneweight int stones for int i stones q.add i while q.size 1 return q.peek leetcode 1047.刪除字串中的所有相鄰重複項 ...
c c 補完計畫 三 素數統計
統計所有小於非負整數 n 的質數的數量 這是一道leetcode簡單級別的,本來沒啥說的,然後我發現了尤拉篩選法.常規思路就是對每個數x進行檢測,用x除以2到根號x,有乙個可以整除,就不是素數.優點是連陣列或者vector都不需要,有乙個算乙個,很節省空間.bool isprime int i re...
Leetcode 周賽記錄
希望能記錄到八月中旬開學吧。反正就沒啥意義 周賽回到了他溫柔可人的樣子 前兩周的分割我感覺可能寫起來會比較吃力 40 min搞定,很愉快 a字串分割沒啥好說的。b的話我覺得它應該降低記憶體空間或者增大長度,一看只有七個都brute force了。就不好玩了orz c葉子的定義有毛病 我很奇怪為什麼有...