yes樣例
挑戰
每次查詢在o(logn)的時間內完成
思路1:直接呼叫sort函式對查詢區間排序,然後將最小值存入容器;方法簡單,但是時間複雜度高,超時了;
/*** definition of interval:
* classs interval
*/ class solution
vectortemp;
for(int i=0;i
思路2:構建線段樹,構建方法參考線段樹構造||;
然後利用線段樹的特殊性質進行查詢;
這道題目很經典,包含了線段樹的構造,查詢,一定要會!
/*** definition of interval:
* classs interval
*/ class segmenttreenode22
};class solution
segmenttreenode22* root = new segmenttreenode22(start, end);
if(start != end) else
return root;
} //線段樹查詢
int query(segmenttreenode22* root, int start, int end)
int mid = (root->start + root->end)/2;
if(start>mid)
return query(root->right,start,end);
else if(mid+1>end)
return query(root->left, start, end);
else
return min(query(root->left,start,mid),query(root->right,mid+1,end));
} vectorintervalminnumber(vector&a, vector&queries)
return res;
} };
Lintcode 區間最小數
yes 樣例 挑戰 每次查詢在o logn 的時間內完成 思路1 直接呼叫sort函式對查詢區間排序,然後將最小值存入容器 方法簡單,但是時間複雜度高,超時了 definition of interval classs interval class solution vectortemp for i...
區間最小數
給定乙個整數陣列 下標由 0 到 n 1,其中 n 表示陣列的規模 以及乙個查詢列表。每乙個查詢列表有兩個整數 start,end 對於每個查詢,計算出陣列中從下標 start 到 end 之間的數的最小值,並返回在結果列表中。樣例對於陣列 1,2,7,8,5 查詢 1,2 0,4 2,4 返回 2...
題目 區間最小數
給定乙個整數陣列 下標由 0 到 n 1,其中 n 表示陣列的規模 以及乙個查詢列表。每乙個查詢列表有兩個整數 start,end 對於每個查詢,計算出陣列中從下標 start 到 end 之間的數的最小值,並返回在結果列表中。您在真實的面試中是否遇到過這個題?yes樣例 對於陣列 1,2,7,8,...