LeetCode 239. 滑動窗口大值
10年積累的網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有建德免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。題目描述:給你一個整數(shù)數(shù)組 nums,有一個大小為?k?的滑動窗口從數(shù)組的最左側(cè)移動到數(shù)組的最右側(cè)。你只可以看到在滑動窗口內(nèi)的 k?個數(shù)字?;瑒哟翱诿看沃幌蛴乙苿右晃?。返回 滑動窗口中的大值 。
視頻講解https://www.bilibili.com/video/BV1XS4y1p7qj/?vd_source=f98f2942b3c4cafea8907a325fc56a48文章講解https://programmercarl.com/0239.%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E6%9C%80%E5%A4%A7%E5%80%BC.html
class Solution {
private:
// 單調(diào)隊列(從大到小)
class MyQueue {
public:
// 用deque來實現(xiàn)
dequeque;
// 每次彈出的時候,比較當(dāng)前要彈出的數(shù)值是否等于隊列出口元素的數(shù)值,如果相等則彈出。
// 同時pop之前判斷隊列當(dāng)前是否為空。
void pop(int val) {
if (!que.empty() && val == que.front()) {
que.pop_front();
}
}
// 如果push的數(shù)值大于入口元素的數(shù)值,那么就將隊列后端的數(shù)值彈出,直到push的數(shù)值小于等于隊列入口元素的數(shù)值為止。
// 這樣就保持了隊列里的數(shù)值是單調(diào)從大到小的了。
void push(int val) {
while (!que.empty() && que.back()< val ) {
que.pop_back();
}
que.push_back(val);
}
// 查詢當(dāng)前隊列里的大值 直接返回隊列前端也就是front就可以了。
int getMax() {
return que.front();
}
};
public:
vectormaxSlidingWindow(vector& nums, int k) {
MyQueue que;
// 滑動窗口大值序列
vectorresult;
// 先將前k的元素放進隊列
for (int i = 0; i< k; ++i) {
que.push(nums[i]);
}
result.push_back(que.getMax());
// 移動滑動窗口
for (int i = k; i< nums.size(); ++i) {
que.pop(nums[i - k]);
que.push(nums[i]);
result.push_back(que.getMax());
}
return result;
}
};
LeetCode 347.前 K 個高頻元素
題目描述:給定一個非空的整數(shù)數(shù)組 nums,返回其中出現(xiàn)頻率前 k 高的元素。
視頻講解https://www.bilibili.com/video/BV1Xg41167Lz文章講解https://programmercarl.com/0347.%E5%89%8DK%E4%B8%AA%E9%AB%98%E9%A2%91%E5%85%83%E7%B4%A0.html
// 時間復(fù)雜度:O(nlogk)
// 空間復(fù)雜度:O(n)
class Solution {
public:
// 小頂堆
class mycomparison {
public:
bool operator()(const pair& lhs, const pair& rhs) {
// 頻率低的優(yōu)先級高
return lhs.second >rhs.second;
}
};
vectortopKFrequent(vector& nums, int k) {
// 要統(tǒng)計元素出現(xiàn)頻率
unordered_mapmap; // mapfor (int i = 0; i< nums.size(); i++) {
map[nums[i]]++;
}
// 對頻率排序
// 定義一個小頂堆,大小為k
priority_queue, vector>, mycomparison>pri_que;
// 用固定大小為k的小頂堆,掃面所有頻率的數(shù)值
for (unordered_map::iterator it = map.begin(); it != map.end(); it++) {
pri_que.push(*it);
if (pri_que.size() >k) { // 如果堆的大小大于了K,則隊列彈出,保證堆的大小一直為k
pri_que.pop();
}
}
// 找出前K個高頻元素,因為小頂堆先彈出的是最小的,所以倒序來輸出到數(shù)組
vectorresult(k);
for (int i = k - 1; i >= 0; i--) {
result[i] = pri_que.top().first;
pri_que.pop();
}
return result;
}
};
總結(jié)
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享題目:代碼隨想錄算法訓(xùn)練營第十三天-創(chuàng)新互聯(lián)
新聞來源:http://muchs.cn/article48/dgcchp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、搜索引擎優(yōu)化、網(wǎng)站營銷、品牌網(wǎng)站設(shè)計、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)