Leetcode 611. 有效三角形的個數 (排序後雙指標優化)
排序,直接列舉時間複雜度O(n^3)
雙指標優化:排序後,首先列舉最大的邊,列舉最大的邊之後,在列舉第二大的邊,在列舉第二大的邊的時候,最小的邊只會不斷向右移動,不會後退,因此可以去掉一重迴圈。程式碼如下:
class Solution {
public:
int triangleNumber(vector<int>& nums) {
sort(nums.begin(),nums.end());
int n = nums.size();
int k = 0, res = 0;
for(int i=2;i<n;i++){
for(int j=i-1,k=0;j>k;j--){
while(k<j&&nums[k]+nums[j]<=nums[i]) k++;
res += j-k; // k k+1, k+2, j-1 // j-k-1+1
}
}
return res;
}
};
相關文章
- 指標-n個數的排序指標排序
- LeetCode合併兩個有序陣列(逆向雙指標)LeetCode陣列指標
- 有效資源跟蹤的8個指標指標
- leetcode--三數之和(python實現雙指標法)LeetCodePython指標
- 雙指標妙解三數之和指標
- 雙指標指標
- 「LeetCode Top100」之雙指標LeetCode指標
- Mysql優化_ORDER BY和GROUP BY 的優化講解(單路排序和雙路排序)MySql優化排序
- 力扣之迴文數(雙指標中的對撞指標公式模板)力扣指標公式
- 圖解兩數之和:雙指標法圖解指標
- LeetCode解題記錄(雙指標專題)LeetCode指標
- 雙指標法指標
- Elasticsearch 按照標籤匹配個數優先排序查詢Elasticsearch排序
- 雙指標(下標)的應用指標
- LeetCode -844. 比較含退格的字串(棧、雙指標)LeetCode字串指標
- 指標與字串排序指標字串排序
- leetcode:有效的數獨LeetCode
- <二分查詢+雙指標+字首和>解決子陣列和排序後的區間和指標陣列排序
- 雙指標法相關的題指標
- 程式分析與優化 - 5 指標分析優化指標
- LeetCode 36——有效的數獨LeetCode
- 演算法-雙指標演算法指標
- 雙指標演算法的一個簡單題解指標演算法
- ASP.NET十個有效效能優化的方法ASP.NET優化
- C/C++——宣告一個到字元的指標,包含10個整數的陣列,到包含10個整數的陣列的引用,到字串的陣列的指標,到字元的指標的指標...C++字元指標陣列字串
- 【leetcode】19. 刪除連結串列的倒數第N個節點(remove-nth-node-from-end-of-list)(雙指標)[中等]LeetCodeREM指標
- 【LeetCode_344】反轉字串_Python&Java_雙指標解法LeetCode字串PythonJava指標
- 企業衡量內容營銷是否有效的5個關鍵指標指標
- 滑動視窗與雙指標指標
- 雙指標維護筆記指標筆記
- 指標變數指標變數
- Leetcode 劍指 Offer 40. 最小的k個數LeetCode
- LeetCode-兩個排序陣列的中位數LeetCode排序陣列
- 智慧指標引用計數變化學習指標
- LeetCode-367-有效的完全平方數LeetCode
- 陣列與指標&氣泡排序陣列指標排序
- 雙指標相關演算法指標演算法
- 6.12.雙指標專題指標