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

手工活接单正规平台关键词seo公司

手工活接单正规平台,关键词seo公司,毕节网站建设,市南区网站建设前言 这是我参加的第二次训练营!!!爽!这次我将更加细致的写清每一道难题,不仅是提升自己,也希望我自己的写的文章对读者有一定的帮助! 打卡代码随想录算法训练营第55期第十一天(づ…

前言

这是我参加的第二次训练营!!!爽!这次我将更加细致的写清每一道难题,不仅是提升自己,也希望我自己的写的文章对读者有一定的帮助!

打卡代码随想录算法训练营第55期第十一天(づ ̄3 ̄)づ╭❤~ 

首先十分推荐学算法的同学可以先了解一下代码随想录,可以在B站卡哥B站账号、代码随想录官方网站代码随想录了解,卡哥清晰易懂的算法教学让我直接果断关注,也十分有缘和第55期的训练营大家庭一起进步。


今日题目

在学习今日的题目前先看:栈与队列的内部实现机制

LeetCode 150 逆波兰表达式求值

题目链接:150 逆波兰表达式求值

文章讲解:逆波兰表达式求值

视频讲解:卡哥讲解 —— 逆波兰表达式求值

本题依旧是使用了栈的特色,理解起来还行就是遇到数存起来,遇到符号取出计算,主要注意减和除的顺序问题,以及想明白最后结果的存储位置。

public class Solution {public int EvalRPN(string[] tokens) {Stack<int> st = new Stack<int>();for(int i = 0; i < tokens.Length; i++){//如果是符号则取出两个值来计算//注意这里令第一个取出的数为num2 第二个数为num1//且所有的计算都是num1 ... num2if(tokens[i] == "+"){int num2 = st.Pop();int num1 = st.Pop();st.Push(num1 + num2);}else if(tokens[i] == "-"){int num2 = st.Pop();int num1 = st.Pop();st.Push(num1 - num2);}else if(tokens[i] == "*"){int num2 = st.Pop();int num1 = st.Pop();st.Push(num1 * num2);}else if(tokens[i] == "/"){int num2 = st.Pop();int num1 = st.Pop();st.Push(num1 / num2);}elsest.Push(int.Parse(tokens[i]));}//最后结果就是栈中的唯一的值return st.Pop();}
}

LeetCode 239 滑动窗口最大值

题目链接:239 滑动窗口最大值

文章讲解:滑动窗口最大值

视频讲解:卡哥讲解 —— 滑动窗口最大值

滑动窗口的最大值也算是一道相对来说难一点的题,主要理解如何维持滑动窗口,为什么要维持滑动窗口,其实原因很简单,因为我们只需要取得滑动窗口的最大值,我们只需要让每个窗口的最大值放在首位即可,方面明了,后面的内容也可以依次排序。最后是选用什么样的容器来模拟滑动窗口,以及实现的细节。

public class Solution {public int[] MaxSlidingWindow(int[] nums, int k) {List<int> res = new List<int>();MyQueue queue = new MyQueue();for(int i = 0; i < k; i++)//先装够滑动窗口的数量queue.Enqueue(nums[i]);res.Add(queue.Max());//添加第一个值for(int i = k; i < nums.Length; i++){//之后反复添加删除求值即可queue.Dequeue(nums[i - k]);queue.Enqueue(nums[i]);res.Add(queue.Max());}return res.ToArray();} 
}
public class MyQueue
{//使用一个容器来模拟整个队列,需要维持容器第一个值为最大值//这里使用链表public LinkedList<int> queue = new LinkedList<int>();//填入数据方法public void Enqueue(int num){//如果比整个容器最后一个数据要大,就替换这个数据while(queue.Count > 0 && num > queue.Last.Value)queue.RemoveLast();queue.AddLast(num);}public void Dequeue(int num){//如果要移除的数是最大值,则才用移除if(num == queue.First.Value)queue.RemoveFirst();}public int Max(){//最大值就是第一个值return queue.First.Value;}
}

LeetCode 347 前K个高频元素

题目链接:347 前K个高频元素

文章讲解:前 K 个高频元素

视频讲解:卡哥讲解 —— 前 K 个高频元素

本题主要利用优先级队列的属性来做题,优先级队列主要就是求得一组数据最大的几个和最小的几个,利用大小顶堆的原理来封装。如果了解优先级队列,则这个题很好做,如果不了解,那就从这道题开始了解吧!C#中的优先级队列是PriorityQueue<内容,优先级>

public class Solution {public int[] TopKFrequent(int[] nums, int k) {//统计每个元素的频率Dictionary<int,int> dic = new Dictionary<int,int>();for(int i = 0; i < nums.Length; i++){if(dic.ContainsKey(nums[i]))dic[nums[i]]++;elsedic.Add(nums[i] , 1);}//设置优先级队列,求得前k个高频元素PriorityQueue<int , int> pq = new PriorityQueue<int , int>();foreach(var num in dic){pq.Enqueue(num.Key , num.Value);if(pq.Count > k)pq.Dequeue();}//将结果填入数组int[] res = new int[k];for(int i = k - 1; i >= 0; i--)res[i] = pq.Dequeue();return res;}
}

http://www.dtcms.com/wzjs/183270.html

相关文章:

  • html5后台网站模板设计公司
  • 最牛的网站建设郑州厉害的seo优化顾问
  • 零售网站开发alexa排名查询
  • 饲料行业怎么做网站html网页制作网站
  • 龙岗-网站建设深圳信科信息流广告是什么
  • 深圳福田大型商城网站建设电子商务网站建设流程
  • 个人备案公司网站个人免费开发app
  • 网站代码上传后无法打开石家庄百度推广优化排名
  • 做网站怎么上词一级造价工程师
  • asp.net网站开发模板开发网站建设
  • asp开源政府网站网站查询ip
  • 淘宝网站详情页怎么做武汉seo群
  • web做网站实验报告做网站推广
  • 医院网站管理办法策划方案网站
  • 项目外包公司到底值不值得去seo的课谁讲的好
  • 网站中链接怎么做安卓优化大师hd
  • 广州小程序开发方案seo智能优化
  • 做网站1008做网站 - 百度2345网址大全设主页
  • wordpress如何自动采集网站图片电商平台排行榜前十名
  • 长沙营销型网站制作费用武汉seo招聘
  • 南京做电商网站的公司简介网络建站流程
  • 北京网站建设价格便宜兰州网络推广关键词优化
  • 免费男人做那个的视频网站seo主管招聘
  • 山西建设局网站首页搜索引擎优化的要点
  • 快速制作效果图软件如何做网站推广及优化
  • 校园网站平台建设公众号seo排名优化
  • 县级政府网站建设费用怎么建网站详细步骤
  • 怎么制作网站上传视频搜狐视频
  • 网站建设来发票软文推广文章范文1000
  • 网站上百度要怎么做鼓楼网站seo搜索引擎优化