所以我有以下代码,首先我使用的是使用具有相同条件while(true)的if语句来打破它,现在我的do-while循环中。
代码现在看起来像这样:
do {
for (int i = 0; i < arrayToUse.length; i++) {
int diff = arrayToUse[i] - number;
if (diff >= 5) {
arrayToUse[i] -= 5;
count++;
break;
}
if (diff >= 2) {
arrayToUse[i] -= 2;
count++;
break;
}
if (diff == 1) {
arrayToUse[i] -= 1;
count++;
break;
}
}
if(preCount == count)
break;
preCount = count;
} while (!allElementsEqual(arrayToUse, number));这arrayToUse是我收到的数组作为输入。代码allElementsEqual()看起来像这样:
static boolean allElementsEqual(int[] arr, int num){
for(int i=0;i<arr.length;i++){
if(arr[i] != num)
return false;
}
return true;}我在使用此代码的代码中有超时,而且我无法找到如何计算没有明确定义结束时间的算法的时间复杂度。我在谈论Big Oh Notation的时间复杂性。
我将不胜感激任何帮助。
慕尼黑的夜晚无繁华
慕桂英4014372
随时随地看视频慕课网APP
相关分类