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

网站开发 脚本之家网站主视觉

网站开发 脚本之家,网站主视觉,南京自助建站模板,页面设计免费1 LeetCode45.跳跃游戏II 1.1 题目描述 与跳跃游戏类似,跳跃游戏II给定长为n的从0开始索引的整数数组nums,nums[i]是你在i处能向右跳跃的最大步数,求到达数组最后一个索引处需要跳跃的最少次数。   一个示例:nums[2,3,1,1,4]&a…

1 LeetCode45.跳跃游戏II

1.1 题目描述

  与跳跃游戏类似,跳跃游戏II给定长为n的从0开始索引的整数数组numsnums[i]是你在i处能向右跳跃的最大步数,求到达数组最后一个索引处需要跳跃的最少次数。
  一个示例:nums[2,3,1,1,4],则到达下标4的位置需要跳至少两次,即从下标0跳到下标1,再从下标1跳到下标4

1.2 问题分析及解决

  贪心的思想,即在当前位置所能跳跃的范围内,选择跳跃到有最大跳跃长度的位置。例如nums=[2,3,1,1,4],从下标0可以跳跃到下标1、下标2,但下标1最大跳跃长度为3,比下标2的最大跳跃长度大,因此我们选择跳跃到下标1。
  像上面的思路我们貌似需要每一次遍历数组的一小部分决定下一步要走到哪,这样的话时间复杂度为 O ( n 2 ) O(n^2) O(n2)。可以换个角度,但本质上与上述思路相同。
  我们从一个位置跳跃到其能跳远的最远长度所在的下标now_right的过程中,记录下这之间的所有位置能达到的最远位置的下标max_right,若我们到达了now_right,但仍没到最后一个下标,此时步数就得+1。因为相当于我们回头从具有最大跳跃长度的位置开始跳(步数+1),而回头不需要步数。
  仍以上述为例,nums=[2,3,1,1,4],我们从nums[0]开始跳,其最远可以到达nums[0]+0=2(now_right=2),并记录下在其跳跃范围内的位置能到达的最远下标nums[1]+1=4(max_right=4)。当我们跳到下标2时,我们无法从nums[0]开始再往右跳,因此需要步数+1,从nums[1]起跳,由于我们记录了从nums[1]起跳最远能到达下标4,因此我们只需更新now_right=max_right即可,然后继续上述操作。注意我们只需要判断最远距离能否到达倒数第2个下标,因为若能从某个位置直接到最后一个下标,这不算步数,因此只需判断能否到达倒数第二个下标,若能则肯定也能到最后一个下标;若不能则步数+1就能到达最后一个下标了。
  具体实现如下:

class Solution {
public:int jump(vector<int>& nums) {int ans=0;//记录跳跃过程中能到达的最大下标int maxright=0;//记录从当前位置跳跃能到达的最大下标int nowright=0;for(int i=0;i<nums.size()-1;i++){maxright=max(maxright,nums[i]+i);//如果此时还没到最后一个下标if(i==nowright){//步数+1,从而才能继续向前nowright=maxright;ans++;}}return ans;}
};

2 LeetCode763.划分字母区间

2.1 题目描述

  给定一个字符串s,将字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。如s="ababcc",则最终的划分结果为["abab","cc"]。返回表示每个字符串片段的长度的列表。
  一个示例如下:
1

2.2 问题分析及解决

  贪心的思想,从第一个字母开始遍历,定义指针left指向划分的最左边,right指向划分的最右边,因此right要更新为遍历字母中最后出现的位置的最大值,直到遍历位置与right相等,说明leftright之间就是一个划分。更新left=right+1,继续上述操作即可。
  具体实现如下:


class Solution {
public:vector<int> partitionLabels(string s) {vector<int> ans;int end_char[26];//记录每个字母最后出现的位置for(int i=0;i<s.length();i++){end_char[s[i]-'a']=i;}//记录遍历过程中每个字母最后一次出现的位置int right=0;//划分的左边int left=0;//划分的右边int partition=-1;for(int i=0;i<s.length();i++){right=end_char[s[i]-'a'];//划分右边为遍历字母最后一次出现位置的最大值partition=max(partition,right);//如果遍历到划分位置,则说明是一个划分if(i==partition){ans.push_back(partition-left+1);left=right+1;}}return ans;}
};

文章转载自:

http://4ztQ4OUP.ywzqk.cn
http://BoQONfTc.ywzqk.cn
http://C1TAmaPr.ywzqk.cn
http://SaVwW2bY.ywzqk.cn
http://DSAWix6l.ywzqk.cn
http://6Esbd11K.ywzqk.cn
http://AZYOX5Zf.ywzqk.cn
http://WisGk69M.ywzqk.cn
http://DSyMbpRB.ywzqk.cn
http://Jz7n1ZsD.ywzqk.cn
http://Viu7xjNr.ywzqk.cn
http://6Jdenv7n.ywzqk.cn
http://BDY5S69k.ywzqk.cn
http://eakzSrPj.ywzqk.cn
http://pjV51wE9.ywzqk.cn
http://smvaJMjT.ywzqk.cn
http://bxeX9HRr.ywzqk.cn
http://ZHUKMYYc.ywzqk.cn
http://GO5mTTPk.ywzqk.cn
http://piwbmnaC.ywzqk.cn
http://KcRk6hcG.ywzqk.cn
http://hLX3G9kd.ywzqk.cn
http://xkXF339I.ywzqk.cn
http://Giaz1WXL.ywzqk.cn
http://JsVtcz5o.ywzqk.cn
http://JnMY1uOa.ywzqk.cn
http://g7tF59GQ.ywzqk.cn
http://IO4q8utZ.ywzqk.cn
http://b23b7kmJ.ywzqk.cn
http://bD72BG7w.ywzqk.cn
http://www.dtcms.com/wzjs/771268.html

相关文章:

  • 济宁市城市建设投资中心网站海外访问国内网站 dns
  • php网站开发实用技术练习题苏州网站建设找思创
  • 公司如何做网站宣传足球直播在线直播观看免费cctv5
  • 公司做网站的步骤北京seo全网营销
  • 做设计的兼职网站有哪些WordPress整篇文章登录可见
  • 网站的搜索功能一般怎么做只有做推广才能搜索到网站吗
  • 泉州市城乡和建设网站免费咨询问题
  • 有什么网站是专做婚礼素材的江津区做网站
  • 崇川网站建设北京建站哪家好
  • 广州外贸网站建设 open做兼职的翻译网站吗
  • 宁波建设局网站首页中国建筑报道网
  • 网站提升流量网页设计网站开发教程
  • 备案域名租用英文seo如何优化
  • 百度seo整站优化公司韩城做网站
  • 属于网站建设过程规划酷播wordpress视频插件
  • 有哪些做短租的网站好宝安中心医院怎么样
  • 网站建设平台策划大图网 网站
  • 阿克苏网站建设优化linux下wordpress
  • 阿里云企业建站教程惠州网站建设哪家强
  • 东莞专业网站设计咨询上海骏域网站建设专家
  • 同安建设局网站wordpress图片存储
  • 做电影网站采集什么意思邢台学校网站建设费用
  • 男的和女的做那种短视频网站如何制作网站要钱吗
  • 网页设计与制作考试2020aso优化教程
  • 盐山做网站的wordpress固定
  • 网站推广基本方法是电子商务营销师
  • 化妆品网站建设的策划哈尔滨网页案例分析
  • 杭州比较好的软装设计公司seo搜索引擎优化公司
  • 金站网.营销型网站营销型网站内容
  • 郑州金水区做网站公司正规东莞网站建设