目录
题目:
题目描述:
题目链接:
思路:
思路一详解(遍历 + 判断):
思路二详解(数学规律/公式):
代码:
Java思路一(遍历 + 判断)代码:
Java思路二(数学规律/公式)代码:
题目:
题目描述:
题目链接:
2894. 分类求和并作差 - 力扣(LeetCode)
思路:
思路一详解(遍历 + 判断):
按照题目要求,从1遍历到n,判断每个数是否能被m整除,若能被m整除将该数加至num2,若不能被m整除将该数加至num1,最后返回num1-num2即可
时间复杂度:O(n) 1<=n,m<=1000 数据很小不会超时
思路二详解(数学规律/公式):
这里直接引用灵神-“灵茶山艾府”的数学推导图
时间复杂度:O(1)
代码:
Java思路一(遍历 + 判断)代码:
class Solution {
public int differenceOfSums(int n, int m) {
int num1=0;
int num2=0;
for(int i=1;i<=n;i++)
{
if(i%m==0)
{
num2+=i;
}
else
{
num1+=i;
}
}
return num1-num2;
}
}
Java思路二(数学规律/公式)代码:
class Solution {
public int differenceOfSums(int n, int m) {
return n*(n+1)/2 - n/m*(n/m+1)*m;
}
}