最大值減去最小值小於或等於num的子陣列的數量
題目要求:
給定陣列srr和整數num,返回共有多少滿足如下條件的子陣列?
max - min <= num
max表示陣列arr[i…j]中最大的值
min表示陣列arr[i…j]中最大的值
說明:
如果陣列的長度為n,請實現時間複雜度為o(n)的演算法
題目解析:
看此題前請看一下上一題33題。
因為發現木有啥人在看,所以直接給出**了:
no code say what:
int getnum(const
vector
&arr, const
int num)
int i = 0;
int j = 0;
int res = 0;
deque
qmax;
deque
qmin;
int len = (int)arr.size();
while (i < len)
qmin.push_back(j);
while (!qmax.empty() && arr[qmax.back()] < arr[j])
qmax.push_back(j);
if (arr[qmax.front()] - arr[qmin.front()] < num)
j++;
}if (qmax.front() == i)
if (qmin.front() == i)
res += j - i;
i++;
}return res;
}
路漫漫其修遠兮,吾將上下而求索… 資料結構和演算法經典100題 第27題
已知一棵二叉樹的每個節點的值都不同,給定這個二叉樹的先序和中序遍歷陣列,不要重建整棵二叉樹,而知通過給定的陣列直接生成正確的後序陣列。include include include include using namespace std int setpos int prearray,int pre...
資料結構和演算法經典100題 第28題
題目要求 表示一棵二叉樹中序遍歷結果,1.求有多少種可能的二叉樹結構?2.返回所有可能的二叉樹結構的頭結點?題目解析 1.乙個關鍵點是 中序遍歷一棵二叉樹結果有序無重複,那麼這棵二叉樹必然是搜尋二叉樹。根據搜尋二叉樹的性質,結點1一定沒有左子樹,所以結點1為頭結點可能的二叉樹結構數目取決於其右子樹的...
資料結構和演算法經典100題 第29題
題目要求 二叉樹節點間的最大距離問題從二叉樹的節點a出發,可以向上走或者向下走,但沿途的節點只能經過一次,當達到節點b時,路徑上的節點數叫作a到b的距離。比如 1 2 3 4 5 6 7節點4和節點2的距離為2,節點5和節點6的距離為5。現在給定一棵二叉樹的頭結點,求整棵二叉樹上節點間的最大距離。題...