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

个人网站允许做内部论坛吗今日头条(官方版本)

个人网站允许做内部论坛吗,今日头条(官方版本),魔方建站,台州网站平面设计413. 等差数列划分 - 力扣(LeetCode) 题目要求: 如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。 例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。 给…

413. 等差数列划分 - 力扣(LeetCode)

题目要求:

如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。

  • 例如,[1,3,5,7,9][7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。

给你一个整数数组 nums ,返回数组 nums 中所有为等差数组的 子数组 个数。

子数组 是数组中的一个连续序列。

示例 1:

输入:nums = [1,2,3,4]
输出:3
解释:nums 中有三个子等差数组:[1, 2, 3]、[2, 3, 4] 和 [1,2,3,4] 自身。

示例 2:

输入:nums = [1]
输出:0

提示:

  • 1 <= nums.length <= 5000
  • -1000 <= nums[i] <= 1000

解法-1 动态规划 O(N):

        首先我们假设两个数字也能构成等差数列,那么任意两个数字都能构成一个长度为2的等差数列。

        创建一个dp表,存放以 i 为结尾的最长等差数列的长度,只要nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2];那么当前的nums[i]就会和前面的等差数列也构成等差数列,那么等差数列长度+1,即:

                                                                f[i] = f[i - 1] + 1;

        否则,当前的nums[i]和之前不构成等差数列,将之前的等差数列进行"结算",也就是计算它包含的子等差数列的数量,经过举例,我们发现一个长度为n的等差数列的子等差数列有

n-2+n-3+......+1个,f[i-1]记录的长度进行计算,长度小于3不计算即可。然后nums[i]与nums[i-1]必然构成一个长度为2的等差数列,所以f[i]赋值为2即可。

        最后,对于如果最后一个元素也属于一个等差数列,此时已经跳出循环,最后一个等差数列就不会"结算"了,所以循环结束后再对等差数列进行"结算"。

class Solution {
public:int numberOfArithmeticSlices(vector<int>& nums) {int n = nums.size();if (n < 3)return 0;vector<int> f(n); // 以i为结尾的最长等差数列长度f[1] = 2;int ret = 0;for (int i = 2; i < n; i++) {if (nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]) {f[i] = f[i - 1] + 1;} else {for (int j = f[i - 1] - 2; j >= 1; j--) // 结算ret += j;f[i] = 2;}}for (int i = f[n - 1] - 2; i >= 1; i--) // 结算ret += i;return ret;}
};

        优化-滑动窗口:

class Solution {
public:int numberOfArithmeticSlices(vector<int>& nums) {int n = nums.size();if (n < 3)return 0;int a,b;a = 2;int ret = 0;for (int i = 2; i < n; i++) {if (nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]) {b = a + 1;} else {for (int j = a - 2; j >= 1; j--)ret += j;b = 2;}a = b;}for (int i = a - 2; i >= 1; i--)ret += i;return ret;}
};

http://www.15wanjia.com/news/56211.html

相关文章:

  • 橘色网站模板百度快照优化排名怎么做
  • 备案期间怎么访问网站seo全称是什么
  • 做软件测试的网站友情链接交换标准
  • 动态网站制作素材设计培训班学费一般多少
  • 做软件与做网站建设有什么区别百度优化培训
  • 公安网站备案流程公司网址
  • 大连网站建设仟亿科技如何有效的推广宣传
  • 街道政府网站建设管理工作总结重庆人力资源和社会保障网官网
  • 河南省住建厅官网百度seo优化规则
  • 做类似淘宝一样的网站有哪些友情链接代码美化
  • 100个最好的微信小程序免费优化网站
  • 有哪些网站是cmssem搜索
  • 嘉兴做微网站多少钱营销外包公司
  • 如何用asp做网站百度竞价推广思路
  • 商丘整站优化昆明百度关键词优化
  • 做的网站如何投入搜索引擎优网营销
  • 在别的公司做的网站可以转走吗百度推广服务费3000元
  • 做网站 超速云百度关键词优化送网站
  • 苏州建设造价信息网站免费seo网站诊断
  • 营销技巧在线播放北京seo优化服务
  • b2b2c网站爱站网关键词挖掘工具熊猫
  • 临沂市罗庄区住房和建设局网站社群营销成功案例
  • wordpress建站详细教程网络推广方式有哪些
  • 网站无后台添加后台国内最新新闻大事
  • 图片设计网站有哪些网站推广苏州
  • 郴州网站seo网络舆情监测
  • 无锡网站建设专业极速信息微信公众号推广2元一个
  • 做网站的都是直男癌吗应用商店关键词优化
  • 如何创建微信小程序商城seo的优化方案
  • 设计师个人作品集网站seo快速排名软件app