第一题用栈,leetcode上有原题 第二题代码: vector<int> GetPowerFactor(int R, int N) { vector<int> res; if (N == 1) return res; int maxPower = 0; int div = R; while ((div /= N) > 0) { maxPower++; } div = R; for (int i = maxPower;i >= 0;--i) { int tmp = (int)pow(N, i); if (tmp == div) { res.push_back(i); div -= tmp; break; } else if (tmp < div) { res.push_back(i); div -= tmp; } } if (div != 0) { vector<int> res1; return res1; } int length = res.size(); for (int i = 0;i < (length >> 1);++i) { int tmp = res[i]; res[i] = res[length - 1 - i]; res[length - 1 - i] = tmp; } return res; } 第三题:用vector<pair<int,int>>第一位存储差值,第二位存索引索引,然后用sort,会先排序差值,再排序索引。 第四题没做完,不知道思路对不对,说一下我的思路欢迎大神指点,就是用图的深度优先遍历,每次遇到 &#39;.&#39; 对其进行dfs两次,第一次是把这个点设为可用,然后遍历后面隔一个点设为可用,第二次是第一个点不可用,后面第二个点可用,然后遍历下去,比较两次遍历可用点谁大。
点赞 2

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务