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

网站是什么意思例如百度快速提交入口

网站是什么意思例如,百度快速提交入口,新建网站多少钱,天津企业模板建站目录 题目链接:2894. 分类求和并作差 - 力扣(LeetCode) 题目描述 解法一:遍历求解 Java写法: C写法: 运行时间 时间复杂度和空间复杂度 解法二:数学优化法 Java写法: C写法…

目录

题目链接:2894. 分类求和并作差 - 力扣(LeetCode)

题目描述

解法一:遍历求解

Java写法:

C++写法:

运行时间

时间复杂度和空间复杂度

解法二:数学优化法

Java写法:

C++写法:

运行时间

时间复杂度和空间复杂度

总结


题目链接:2894. 分类求和并作差 - 力扣(LeetCode)

注:下述题目描述和示例均来自力扣

题目描述

给你两个正整数 n 和 m 。

现定义两个整数 num1 和 num2 ,如下所示:

  • num1:范围 [1, n] 内所有 无法被 m 整除 的整数之和。
  • num2:范围 [1, n] 内所有 能够被 m 整除 的整数之和。

返回整数 num1 - num2 。

示例 1:

输入:n = 10, m = 3
输出:19
解释:在这个示例中:
- 范围 [1, 10] 内无法被 3 整除的整数为 [1,2,4,5,7,8,10] ,num1 = 这些整数之和 = 37 。
- 范围 [1, 10] 内能够被 3 整除的整数为 [3,6,9] ,num2 = 这些整数之和 = 18 。
返回 37 - 18 = 19 作为答案。

示例 2:

输入:n = 5, m = 6
输出:15
解释:在这个示例中:
- 范围 [1, 5] 内无法被 6 整除的整数为 [1,2,3,4,5] ,num1 = 这些整数之和 =  15 。
- 范围 [1, 5] 内能够被 6 整除的整数为 [] ,num2 = 这些整数之和 = 0 。
返回 15 - 0 = 15 作为答案。

示例 3:

输入:n = 5, m = 1
输出:-15
解释:在这个示例中:
- 范围 [1, 5] 内无法被 1 整除的整数为 [] ,num1 = 这些整数之和 = 0 。 
- 范围 [1, 5] 内能够被 1 整除的整数为 [1,2,3,4,5] ,num2 = 这些整数之和 = 15 。
返回 0 - 15 = -15 作为答案。

提示:

  • 1 <= n, m <= 1000

解法一:遍历求解

        常规遍历解法的核心就是通过循环遍历区间内的所有整数,根据是否能被 m 整除进行分类累加。具体步骤如下:

  1. ​初始化累加器​​:定义两个变量 num1 和 num2,分别用于累加无法被 m 整除和能够被 m 整除的整数之和。
  2. ​循环遍历​​:对区间 [1, n] 内的每个整数 i 进行遍历,利用条件判断 i % m != 0 将数值分类累加到 num1 或 num2 中。
  3. ​结果计算​​:最终返回 num1 - num2 的差值。

        这个方法的优势就在于逻辑比较直观,非常易于实现,不过时间复杂度为 O(n),当 n 较大时效率较低。

Java写法:

public class Solution {public int differenceOfSums(int n, int m) {int num1 = 0, num2 = 0;for (int i = 1; i <= n; i++) {if (i % m != 0) num1 += i;else num2 += i;}return num1 - num2;}
}

C++写法:

class Solution {
public:int differenceOfSums(int n, int m) {int num1 = 0, num2 = 0;for (int i = 1; i <= n; i++) {(i % m != 0) ? num1 += i : num2 += i;}return num1 - num2;}
};

运行时间

时间复杂度和空间复杂度

​方法​​时间复杂度​​适用场景​​核心思想​
常规遍历法O(n)小规模数据或调试条件判断与累加
数学优化法O(1)大规模数据或高效计算等差数列求和与整体映射关系



解法二:数学优化法

数学优化解法就是通过公式直接计算结果,避免了遍历操作。其核心步骤如下:

  1. ​总和计算​​:区间 [1, n] 所有整数之和为 S = n*(n+1)/2
  2. ​可被 m 整除的数列​​:这些数构成等差数列 m, 2m, 3m, ..., km(其中 k = n/m 取整),其和为 num2 = m * k*(k+1)/2
  3. ​结果公式推导​​:无法被 m 整除的数和为 S - num2,因此所求差值为 (S - num2) - num2 = S - 2*num2

        这个方法的时间复杂度为 O(1),效率远远高于常规遍历法,尤其适用于大范围数据。

Java写法:

public class Solution {public int differenceOfSums(int n, int m) {int total = n * (n + 1) / 2;int k = n / m;int num2 = m * k * (k + 1) / 2;return total - 2 * num2;}
}

C++写法:

class Solution {
public:int differenceOfSums(int n, int m) {int total = n * (n + 1) / 2;int k = n / m;int num2 = m * k * (k + 1) / 2;return total - 2 * num2;}
};

运行时间

时间复杂度和空间复杂度

​方法​​时间复杂度​​适用场景​​核心思想​
常规遍历法O(n)小规模数据或调试条件判断与累加
数学优化法O(1)大规模数据或高效计算等差数列求和与整体映射关系

总结

        本文介绍了两种计算区间[1,n]内整数基于能否被m整除的分类差值方法。常规遍历法通过循环判断累加,时间复杂度O(n),易于实现但效率较低。数学优化法则利用等差数列求和公式直接计算结果,时间复杂度降至O(1),特别适合大规模数据处理。两种方法分别适用于不同场景:遍历法适合小规模数据调试,数学方法更适合高效计算需求。两种解法均提供了Java和C++的实现代码示例。

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

相关文章:

  • 原创网站模版百度网盘搜索引擎入口哪里
  • 腾讯网站建设的基本情况青岛seo外包服务
  • 新冠疫情最新数据消息广告优化师发展前景
  • 搜启网站建设淘宝怎么优化关键词步骤
  • 小说网站开发业务逻辑优化游戏卡顿的软件
  • 杭州网站优化外包武汉网络推广公司
  • 饰品电子商务网站的建设合肥网络推广服务
  • 淘宝联盟网站推广怎么做搜索排名广告营销
  • 武汉云时代网站建设公司怎么样廊坊seo整站优化软件
  • 网站建设中的html页面百度竞价开户多少钱
  • 网站建设外包还是自己做外链提交
  • 网站建设售前说明书seo培训课程
  • 化妆品品牌网站如何做在线注册免费域名
  • jsp小型网站开发代码网站seo博客
  • 赣州做网站哪家好最近的国际新闻
  • wordpress看文seo怎么学
  • qq小程序在哪里打开驻马店网站seo
  • 有哪些用flex做的网站网球新闻最新消息
  • 做ppt到哪个网站找图片seo综合查询网站
  • 甘肃省人民政府文件seo北京公司
  • 网站怎么做qq微信登陆推广普通话演讲稿
  • 有经验的手机网站建设正规seo多少钱
  • wordpress安装插件需要ftpseo优化专员编辑
  • 免费工程分包信息网广州王牌seo
  • 安徽建设工程有限公司官网百度关键词优化专家
  • 做任务的兼职网站baidu优化
  • 深圳市住房和建设网线上seo关键词优化软件工具
  • 济南微网站开发海外市场推广方案
  • 视频网站做电商重庆seo排名扣费
  • wordpress 建站插件网络营销图片