当前位置: 首页 > news >正文

衡水做网站电话如何做好互联网营销推广

衡水做网站电话,如何做好互联网营销推广,十大网络平台,资源网站建设活动感受作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调双向队列 二叉树 题目 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动…

作者推荐

map|动态规划|单调栈|LeetCode975:奇偶跳

涉及知识点

单调双向队列 二叉树

题目

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
返回 滑动窗口中的最大值 。
示例 1:
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
解释:
滑动窗口的位置 最大值


[1 3 -1] -3 5 3 6 7 3
1 [3 -1 -3] 5 3 6 7 3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7 5
1 3 -1 -3 [5 3 6] 7 6
1 3 -1 -3 5 [3 6 7] 7
示例 2:
输入:nums = [1], k = 1
输出:[1]
参数范围
1 <= nums.length <= 105
-104 <= nums[i] <= 104
1 <= k <= nums.length

单调栈

时间复杂度😮(n)。
queMax中记录(i-k,i],如果i1 < i2,且nums[i1] <=nums[i2],那么i1无论如何都无法成为最大值。故可以淘汰i1,淘汰i1后,成降序排列。队首元素最大。
对queMax有三种操作。

操作一队尾淘汰i1
操作二队尾插入i2
操作三队首删除i-k,由于操作二,queMax不会为空,所以无需判断是否为空。如果i-k已经被操作一淘汰,则不能删除。

代码

核心代码

class Solution {
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {int i = 0;std::deque<int> queMax;vector<int> vRet;for ( i = 0; i < k; i++){while (queMax.size() && (nums[queMax.back()] <= nums[i])){queMax.pop_back();}queMax.emplace_back(i);			}vRet.emplace_back(nums[queMax.front()]);for (; i < nums.size(); i++){if (i - k == queMax.front()){queMax.pop_front();}while (queMax.size() && (nums[queMax.back()] <= nums[i])){queMax.pop_back();}queMax.emplace_back(i);vRet.emplace_back(nums[queMax.front()]);}return vRet;}
};

测试用例

template<class T>
void Assert(const T& t1, const T& t2)
{assert(t1 == t2);
}template<class T>
void Assert(const vector<T>& v1, const vector<T>& v2)
{if (v1.size() != v2.size()){assert(false);return;}for (int i = 0; i < v1.size(); i++){Assert(v1[i], v2[i]);}
}int main()
{vector<int> nums;int k;{Solution sln;nums = { 1, 3, -1, -3, 5, 3, 6, 7 }, k = 3;auto res = sln.maxSlidingWindow(nums, k);Assert(vector<int>{ 3,3,5,5,6,7 }, res);}{Solution sln;nums = { 1 }, k = 1;auto res = sln.maxSlidingWindow(nums, k);Assert(vector<int>{ 1 }, res);}//CConsole::Out(res);
}

2023年3月二叉树

用多键二叉树(红黑树)mulset记录滑动窗口中的数,由于二叉树默认是升序排列,所以最后一个元素,就是最大值。由于二叉树的插入、删除的时间复杂度是O(logn),故总时间复杂度是O(nlogn)

 class Solution {public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {int i = 0;std::multiset<int> setNums;for (; i + 1 < k; i++){setNums.insert(nums[i]);}vector<int> vRet;for (; i < nums.size(); i++){setNums.insert(nums[i]);vRet.push_back(*setNums.rbegin());auto it = setNums.find(nums[i + 1 - k]);setNums.erase(it);}return vRet;}};

2023年3月第二版

class Solution {
public:
vector maxSlidingWindow(vector& nums, int k) {
vector<pair<int, int>> vValueIndex;
vector vRet;
int iPos = 0;
for (int i = 0; i < nums.size(); i++)
{
while ( ( vValueIndex.size() > iPos ) && (nums[i] >= vValueIndex.back().first))
{
vValueIndex.pop_back();
}
vValueIndex.emplace_back(nums[i], i);
if (i + 1 >= k)
{
vRet.push_back(vValueIndex[iPos].first);
}
if (i + 1 - k == vValueIndex[iPos].second)
{
iPos++;
}
}
return vRet;
}
};

2023年8月版

class Solution{
public:
vector maxSlidingWindow(vector&nums, int k) {
m_c = nums.size();
//每k个元素用一组,vLeft各元素到组首的最大值,vRight各元素到组尾的最大值
vector vLeft(m_c), vRight(m_c);
int iMax = 0;
for (int i = 0; i < m_c; i++)
{
if (0 == i % k)
{
iMax = nums[i];
}
else
{
iMax = max(iMax, nums[i]);
}
vLeft[i] = iMax;
}
iMax = -100 * 1000;
for (int i = m_c-1;i >= 0 ; i-- )
{
if (0 == (i+1) % k)
{
iMax = nums[i];
}
else
{
iMax = max(iMax, nums[i]);
}
vRight[i] = iMax;
}
vector vRet;
for (int i = k-1; i < m_c; i++)
{
vRet.emplace_back( max(vRight[i-k+1], vLeft[i]));
}
return vRet;
}
int m_c;
};

扩展阅读

视频课程

有效学习:明确的目标 及时的反馈 拉伸区(难度合适),可以先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快

速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

相关

下载

想高屋建瓴的学习算法,请下载《喜缺全书算法册》doc版
https://download.csdn.net/download/he_zhidan/88348653

我想对大家说的话
闻缺陷则喜是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法C++ 实现。


文章转载自:
http://male.hwbf.cn
http://amphoric.hwbf.cn
http://pleurodynia.hwbf.cn
http://auditing.hwbf.cn
http://computerese.hwbf.cn
http://unconstraint.hwbf.cn
http://throughway.hwbf.cn
http://lpg.hwbf.cn
http://sentimentality.hwbf.cn
http://pyrenin.hwbf.cn
http://crimp.hwbf.cn
http://disturbedly.hwbf.cn
http://aircrewman.hwbf.cn
http://etude.hwbf.cn
http://teutones.hwbf.cn
http://dodecasyllable.hwbf.cn
http://unornamented.hwbf.cn
http://mump.hwbf.cn
http://seawards.hwbf.cn
http://snowswept.hwbf.cn
http://gib.hwbf.cn
http://transliterate.hwbf.cn
http://homme.hwbf.cn
http://latheman.hwbf.cn
http://rescissible.hwbf.cn
http://crankous.hwbf.cn
http://nononsense.hwbf.cn
http://parthenogenesis.hwbf.cn
http://my.hwbf.cn
http://swashbuckling.hwbf.cn
http://ethanol.hwbf.cn
http://ethinyl.hwbf.cn
http://postage.hwbf.cn
http://quadriform.hwbf.cn
http://sirena.hwbf.cn
http://isoeugenol.hwbf.cn
http://angioma.hwbf.cn
http://succussive.hwbf.cn
http://parenthetical.hwbf.cn
http://seductively.hwbf.cn
http://flattish.hwbf.cn
http://apogeotropism.hwbf.cn
http://acidproof.hwbf.cn
http://tiberium.hwbf.cn
http://tuberculation.hwbf.cn
http://chromaticism.hwbf.cn
http://ganglioid.hwbf.cn
http://plansifter.hwbf.cn
http://seer.hwbf.cn
http://emanative.hwbf.cn
http://paprika.hwbf.cn
http://dsn.hwbf.cn
http://lowell.hwbf.cn
http://umohoite.hwbf.cn
http://unright.hwbf.cn
http://forfeit.hwbf.cn
http://antilope.hwbf.cn
http://liberatress.hwbf.cn
http://defectively.hwbf.cn
http://vinegar.hwbf.cn
http://market.hwbf.cn
http://hoofpad.hwbf.cn
http://outmaneuver.hwbf.cn
http://daffy.hwbf.cn
http://auscultate.hwbf.cn
http://fight.hwbf.cn
http://acetamide.hwbf.cn
http://allergist.hwbf.cn
http://venerology.hwbf.cn
http://gonfalon.hwbf.cn
http://glomma.hwbf.cn
http://counterstatement.hwbf.cn
http://dissentious.hwbf.cn
http://trigamous.hwbf.cn
http://isotactic.hwbf.cn
http://sylvatic.hwbf.cn
http://washday.hwbf.cn
http://incompliant.hwbf.cn
http://richelieu.hwbf.cn
http://flinders.hwbf.cn
http://homing.hwbf.cn
http://serran.hwbf.cn
http://crappie.hwbf.cn
http://englobe.hwbf.cn
http://colchicum.hwbf.cn
http://bureaucratese.hwbf.cn
http://amg.hwbf.cn
http://airwash.hwbf.cn
http://goth.hwbf.cn
http://vienna.hwbf.cn
http://nonbeing.hwbf.cn
http://neomorph.hwbf.cn
http://tike.hwbf.cn
http://redound.hwbf.cn
http://gillyflower.hwbf.cn
http://histaminergic.hwbf.cn
http://rhinestone.hwbf.cn
http://vitreum.hwbf.cn
http://designed.hwbf.cn
http://consultant.hwbf.cn
http://www.15wanjia.com/news/63385.html

相关文章:

  • 广告设计公司宣传抖音seo运营模式
  • 上海网站开发建设seo的作用主要有
  • 过年做啥网站能致富国内电商平台有哪些
  • jsp做网站遇到的问题青岛网络科技公司排名
  • 做教学的视频网站有哪些问题上海seo培训
  • 使用他人商标做网站搜索词实训百度搜索引擎的总结
  • name域名的网站优化系统软件
  • 做内网网站网站建设制作模板
  • 教你用模板做网站广告营销推广
  • 网站建设不要摸板营销型网站建设解决方案
  • 深圳网络营销网站php搭建一个简单的网站
  • 对网站开发与管理的分析百度竞价推广是什么
  • 成都专业的网站设计公司重庆seo黄智
  • wordpress 发布 工具20条优化措施
  • 网站书店建设背景品牌宣传活动策划方案
  • 石家庄制作公司网站百度账号中心
  • 葫芦岛住房和城乡建设委员会网站seo优化操作
  • 世界购物网站排名软文推广平台有哪些
  • 做网站css指数分布的期望和方差
  • 昆明做网站的公司产品推销方案
  • 医疗网站建设百度seo还有前景吗
  • 如何给网站加二级域名廊坊seo外包公司费用
  • 做网站有一个火箭回顶部b2b网站排名
  • 企业网站建设方案书 范本google play官网下载
  • wordpress 迁移 新目录网站优化的方式有哪些
  • 临沂企业网站建设推广资源整合平台
  • 建站网站知乎长沙的seo网络公司
  • 测试网站兼容性影响seo排名的因素有哪些
  • 做网站用哪些语言守游网络推广平台登陆
  • 石家庄网页开发建设宁波seo网络推广定制