今天开始学Java 数对问题(复杂度问题)

题目:有x与y整数数对,x与y均不大于n,x除以y的余数大于等于k。

思路:这个题目看起来很简单,只需要两个循环就可以做出来,但是两个循环复杂度太高了,想想如果n=10^5的话复杂度会有多高?

这里提供一个群里大佬的思路,只需要一个循环


可以说是找规律吧,首先除数i是从k+1开始取到n,被除数先取从k到i的数字,这样可以保证得到的余数是大于等于k的。然后再让被除数加上除数的和得到另一个被除数,这样得到余数是跟之前的一样的。


猜你喜欢

转载自blog.csdn.net/u014566193/article/details/79720758