【leetcode】313. 超级丑数
#define INT_MAX 2147483647 int nthSuperUglyNumber(int n, int* primes, int primesSize){ if(n == 1) return 1; int *res = (int *)calloc(n, sizeof(int)); int rsize = 0; int *pids = (int *)calloc(primesSize, sizeof(int)); res[rsize++] = 1; while(rsize < n){ int min = INT_MAX; int id = 0; for(int i = 0; i < primesSize; i++){ int tmin = primes[i] * res[ pids[i] ]; if(tmin < min) { min = tmin; id = i; } // 去除重复 else if(tmin == min) { pids[i]++; } } res[rsize++] = min; pids[id]++; } return res[n - 1]; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步