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

重庆皇华建设集团有限公司网站国际域名注册商

重庆皇华建设集团有限公司网站,国际域名注册商,中国核工业第五建设有限公司,凡客诚品app下载413. 等差数列划分 如果一个数列 至少有三个元素 ,并且任意两个相邻元素之差相同,则称该数列为等差数列。 例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。 给你一个整数数组 nums ,返回数组 nums 中所有为等差数…

413. 等差数列划分

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

  • 例如,[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<=50001 <= nums.length <= 50001<=nums.length<=5000
  • −1000<=nums[i]<=1000-1000 <= nums[i] <= 10001000<=nums[i]<=1000

思路:

举个栗子:

A = [0, 1, 2, 3, 4]return: 6, for 3 arithmetic slices in A:[0, 1, 2],
[1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3, 4],
[ 1, 2, 3, 4],
[2, 3, 4]

dp[i] 表示以 A[i] 为结尾的等差递增子区间的个数。

当 A[i] - A[i-1] == A[i-1] - A[i-2],那么 [A[i-2], A[i-1], A[i]] 构成一个等差递增子区间。而且在以 A[i-1] 为结尾的递增子区间的后面再加上一个 A[i],一样可以构成新的递增子区间。

dp[2] = 1[0, 1, 2]
dp[3] = dp[2] + 1 = 2[0, 1, 2, 3], // [0, 1, 2] 之后加一个 3[1, 2, 3]     // 新的递增子区间
dp[4] = dp[3] + 1 = 3[0, 1, 2, 3, 4], // [0, 1, 2, 3] 之后加一个 4[1, 2, 3, 4],    // [1, 2, 3] 之后加一个 4[2, 3, 4]        // 新的递增子区间

综上,在 A[i] - A[i-1] == A[i-1] - A[i-2] 时,dp[i] = dp[i-1] + 1。

因为递增子区间不一定以最后一个元素为结尾,可以是任意一个元素结尾,因此需要返回 dp 数组累加的结果。

优化:

由于dp数组只需要知道上一个位置的数,所以可以用一个变量来记录就行了!

代码:(Java)

public class SeqPart {public static void main(String[] args) {// TODO Auto-generated method stubint[] nums = {1,2,3,8,9,10};System.out.println(numberOfArithmeticSlices(nums));}public static int numberOfArithmeticSlices(int[] nums) {if(nums == null ||nums.length < 3) {return 0;}int n = nums.length ;int total = 0;int dp = 0;for(int i = 2; i < n; i++) {if(nums[i] - nums[i - 1] == nums[i - 1] - nums[ i - 2]) {dp++;}else {dp = 0;}total += dp;}return total;}
}

复杂度分析:

  • 时间复杂度:O(n),其中 n 是数组 nums的长度。
  • 空间复杂度:O(1)。

注:仅供学习参考!

题目来源:力扣。

http://www.yayakq.cn/news/169964/

相关文章:

  • 自己接私单网站开发网站一般用什么做的
  • 枣庄建设工程管理局网站营销推广工作内容
  • 流媒体网站建设规划重庆在线app
  • 三亚网站推广团队天天网站
  • 浙江创业建设公司网站页游代理
  • 外贸做网站推广建行官网的网址是多少
  • 服装企业网站模板装饰工程施工流程步骤
  • 软文写作经验关键词排名优化流程
  • 国内阿里网站建设自己怎么做网站首页
  • 开发专业网站阿里巴巴如何做网站
  • 做二手交易网站如何盈利江西九江刚刚发生的新闻
  • 交互式网站建设上海公司买新能源车
  • 石家庄网站设计公司的别名是建工教育培训机构
  • 用ps怎么做网站效果图大专计算机网络技术就业方向
  • 南宁网站优化排名推广网站换空间wordpress
  • 网站对应的ip地址吗广州易网网站建设
  • 昆山规模的网站建设公司有哪些新开传奇网站站
  • 做暧暧国外网站世界工厂网网页版
  • 创欧科技 网站建设淘客网站推广怎么做
  • 品牌网站建设磐石网络优等三水网站建设哪家好
  • 市场调研数据网站百度快照怎么看
  • 私人网站建设成本品牌型网站制作有哪些公司
  • seo网站地图2022世界500强企业排名
  • 外贸企业网站制作公司多个微信管理系统
  • 青海省公路建设管理局网站国内seo公司
  • 保定市建设局安监网站公司宣传册模板免费下载
  • ftp怎么设置网站首页伤豆丁文库网站开发
  • 长春网站分析如何看网站开发语言
  • 模板网站和定制网站的优劣势对比wordpress账户密码为空
  • 水产食品企业网站模板网站交换链接的网络营销意义