【发布时间】:2020-05-26 22:18:17
【问题描述】:
需要一些关于我为解决这个代码挑战而制作的算法的帮助:
编写一个函数,给定三个整数 A、B 和 K,返回 [A..B] 范围内可被 K 整除的整数个数。
例如,对于 A = 6、B = 11 和 K = 2,您的函数应返回 3,因为在 [6..11] 范围内有三个可被 2 整除的数字,即 6、8 和 10。
A 和 B 是 [0..2,000,000,000] 范围内的整数;
K 是 [1..2,000,000,000] 范围内的整数;
A≤B。
public class Solution {
public int solution(int A, int B, int K) {
int counter = 0;
ArrayList<Integer> listOfNumbersInBetween = new ArrayList<>();
for (int i = A; i <= B; i++) {
listOfNumbersInBetween.add(i);
}
for (int arrayElement : listOfNumbersInBetween) {
if (arrayElement % K == 0) {
counter++;
}
}
return counter;
}}
如您所见,我的解决方案运行良好,但在性能方面,由于时间复杂度 O(B-A),它的得分为 0%。
如何改进此代码以使其得分 100%?
【问题讨论】:
标签: java performance sorting testing