山南市网站建设_网站建设公司_响应式网站_seo优化
2026/1/16 22:59:22 网站建设 项目流程

题目链接:313. 超级丑数 - 力扣(LeetCode)

 

 

 

 

 

 

 

 

 

 

 

 

 

解析:

一个超级丑数肯定是由小于该数的超级丑数 * prime得来,如果不是这样就有别的因数了

针对每个prime维护一个下标,初始指向第一个超级丑数,也就是1,遍历所有prime * 1 取最小值min_v,min_v就是第二个超级丑数

将所有等于min_v的 乘积,下标++

class Solution {
public:int nthSuperUglyNumber(int n, vector<int>& primes) {int m = primes.size();vector<long> array(n, 0);vector<long> vis(m + 1, 0);array[0] = 1;for (int i = 1; i < n; i++) {long min_v = array[vis[0]] * primes[0];for (int j = 1; j < m; j++) {// if (vis[j] < i)min_v = min(min_v, array[vis[j]] * primes[j]);}for (int j = 0; j < m; j++) {if (array[vis[j]] * primes[j] == min_v) vis[j]++;}array[i] = min_v;}return array[n - 1];}
};

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询