猿来如此! 2021-04-26 20:26 采纳率: 0%
浏览 26

请问一下各位大佬这个的时间复杂度是O(n)吗?

描述如果一个数只有质数因子2,3,5,那么这个数是一个丑数。

前10个丑数分别为1,2,3,4,5,6,8,9,10,12,

找出第 N 个丑数

每次for循环只执行一次,我认为复杂度应该是O(n),有没有大佬解惑一下

 

public class Demo04 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int number = ChouShu(input.nextInt());
		System.out.println(number);
	}
	public static int ChouShu(int n) {
		if(n<=0) {
			System.out.println("输入有误!");
			return -1;
		}
		if(n==1) {
			return 1;
		}
		int k=3,count=1;
		for(int i=2;i<k;i++) {
			if(i%2==0 || i%3==0 || i%5==0) {
				count++;
				if(count==n) {
					return i;
				}
			}
			k++;
		}
		return -1;
	}

}

为1也是一个丑数

  • 写回答

2条回答 默认 最新

  • 归去来 兮 Java领域优质创作者 2021-04-27 09:57
    关注

    是O(n),这种时间复杂度的表示方法叫做大O表示法,这种表示时间复杂度的方法首先是一个近似值,他会忽略系数,也会忽略常数,所以你这种求解,就是O(n)

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度