leetcode:1326. 灌溉花園的最少水龍頭數目(dp,困難)
題目:
分析:直接把水龍頭轉化為區間,那麼就是一道簡答的區間問題。
要全部覆蓋,那麼顯然要選擇某一位置開頭(或包含某一位置),然後可以向右達到的最大長度。
也就是一道穿著華麗外表的基礎題。
程式碼:
class Solution {
public:
struct node{
int x;
int y;
} nn[10005];
int n2=0;
static bool cmp(struct node &n1,struct node &n2)
{
if(n1.x==n2.x) return n1.y<n2.y;
return n1.x<n2.x;
}
int minTaps(int n, vector<int>& r) {
//int n;
//vector<int> r;
for(int i=0;i<r.size();i++)
{
if(r[i]==0) continue;
nn[n2].x=max(0,i-r[i]);
nn[n2].y=min(n,i+r[i]);
n2++;
}
sort(nn,nn+n2,cmp);
int l=0;
int ans=0;
int n3=0;
while(1)
{
if(l>=n) return ans;
if(n2==n3) return -1;
if(nn[n3].x>l) return -1;
int maxx=nn[n3].y;
n3++;
while(n3<n2)
{//找包含l且最大的。
if(nn[n3].x>l) break;
maxx=max(nn[n3].y,maxx);
n3++;
}
l=maxx;
ans++;
}
}
};
相關文章
- 2617. 網格圖中最少訪問的格子數(困難)
- 【js】Leetcode每日一題-製作m束花所需的最少天數JSLeetCode每日一題
- leetcode:1000. 合併石頭的最低成本(區間dp,困難)LeetCode
- leetcode:41. 缺失的第一個正數(困難,陣列)LeetCode陣列
- MYSQL練習題:給定數字的頻率查詢中位數(Leetcode困難)MySqlLeetCode
- 選擇學習目標的困難與焦慮
- 機器學習最困難的部分:超引數除錯機器學習除錯
- iOS 的圍欄花園iOS
- Leetcode 通過率最高的困難題 N皇后 II 【回溯解法-剪枝】LeetCode
- Leetcode171-190刷題筆記(非困難題)LeetCode筆記
- 【LeetCode刷題(困難程度)】132. 分割回文串 IILeetCode
- 細數被程式設計師吐糟的9大困難程式設計師
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列
- 《夢幻花園》御花園春版本:感受春日好時光,用心做好中國風
- ACM 最少步數ACM
- 選擇困難的三點思考
- 網際網路巨頭灌溉,虛擬偶像市場開花
- JS祕密花園摘要JS
- LeetCode C++ 968. Binary Tree Cameras【Tree/DFS】困難LeetCodeC++
- 智慧園林:智慧節水灌溉監控系統解決方
- 【基礎dp】HDU 1257 最少攔截系統
- LeetCode 不只是題解(10.正規表示式匹配[困難])LeetCode
- 技術學習選擇的困難
- Kubuntu 專案遭遇困難(轉)Ubuntu
- 【leetcode】45. Jump Game II 非負陣列的最少跳躍步數LeetCodeGAM陣列
- NOIP2012pj擺花[DP 多重揹包方案數]
- leetcode410分割陣列的最大值(二分+貪心,困難)LeetCode陣列
- leetcode:462. 最少移動次數使陣列元素相等 II(數學,中等)LeetCode陣列
- 淺談傳統企業數字化轉型的痛點與困難
- APP開發費用明細介紹,花最少的錢開發APPAPP
- 用思考的方式來看開番茄花園事件事件
- 軟體開發中的十大困難
- 安裝“花園明朝”字型(Arch Linux)Linux
- 如何解決MES交付困難問題?
- 女生轉行學IT有什麼困難?
- 大資料分析存在哪些困難大資料
- 番茄花園win 10系統安裝教程_番茄花園win10一鍵安裝系統方法Win10
- 軟體工程師如同花園園丁 清理程式碼就好比拔草!軟體工程工程師