先报下个人难度:红 红 红 红 红/橙 红
本人未接触算法,如有错误望大神指出!本人会迅速改正!这次的欢乐赛真水
T1:
只需要简单的分支结构判断即可
时间复杂度:O(1)O(1)O(1)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T2:
本题先读取数组长度,在读取需要交换的元素索引,注意,下标是从一开始的,所以我们也从1开始:
时间复杂度:O(n)O(n)O(n)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T3:
本题需要在左上角、右上角、左下角、右下角的位置跳过,假设二维数组的行和列为a,下标从1开始,那么只需要在(1,a) (a,a) (1,1) (a,1)的位置跳过即可。剩下的位置我们用num变量相加。最后输出。
时间复杂度:O(n2)O(n^2)O(n2)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T4:
本题可以先创建一个函数来分解数位,可以用while逐个拆解并相加,或者转换成字符串,之后用for相加,再减去'0'。最后在主函数里判断即可:
时间复杂度:O(n)O(n)O(n)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T5:
通过题面我们不难看出,整个字符串只会出现一次M,所以子串的个数就是M左边的K的数量乘以M右边的P的数量:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T6:
本题由于数据量不大,所以暴力完全可以(要注意的是小于n,不是小于等于):
时间复杂度为O(tnn)O(tn\sqrt n)O(tnn )
本人第一次写题解,如有错误请指出,谢谢