LeetCode—386. Lexicographical Numbers
来源:互联网 发布:linux oracle多实例 编辑:程序博客网 时间:2024/05/21 07:06
386. Lexicographical Numbers
- Total Accepted: 1486
- Total Submissions: 5876
- Difficulty: Medium
Given an integer n, return 1 - n in lexicographical order.
For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9].
Please optimize your algorithm to use less time and space. The input size may be as large as 5,000,000.
C++代码运行时间结果是720ms,25个testcase。估计是我算法太慢了,先贴出来吧。
class Solution {public:vector<int> lexicalOrder(int n) {vector<int> result;int Fir_num = 1, power = 0, num = 0, limits = 0;while (1){num = Fir_num*pow(10, power);limits = (Fir_num + 1)*pow(10, power);while (num < n){result.push_back(num);if (result.size() == n)return result;power++;num = Fir_num*pow(10, power);}if (num == n){result.push_back(num);if (result.size() == n)return result;}power--;num = Fir_num*pow(10, power) + 1;limits = (Fir_num + 1)*pow(10, power);while (num < n&&num<limits){if (insert(result, num, limits, n, 1))return result;if (num == n&&n % 10 != 0)if (insert(result, num, limits, n, INT_MAX))return result;}if (num == n&&n % 10 != 0)if (insert(result, num, limits, n, INT_MAX))return result;if (num > n || num == limits){power = 0;Fir_num++;}}return result;}int insert(vector<int>& result, int &num, int &limits, int &n,int onlyonce){int tmp = 0, tmp1 = 0, tmp2 = 0, length = 0;result.push_back(num);if (result.size() == n)return 1;while (num < limits&&onlyonce){onlyonce--;tmp = num / 10;num++;if ((int)(num / 10) != tmp&&num < limits){tmp1 = tmp;tmp2 = num / 10;length = 0;while (tmp1 != tmp2){length++;tmp1 /= 10;tmp2 /= 10;}while (length){if (num / pow(10, length) < n){result.push_back(num / pow(10, length));if (result.size() == n)return 1;}tmp1 /= 10;tmp2 /= 10;length--;}}}return 0;}};
0 0
- LeetCode—386. Lexicographical Numbers
- LeetCode—386. Lexicographical Numbers
- [leetcode] 386. Lexicographical Numbers
- [leetcode]386. Lexicographical Numbers
- 【Leetcode】386. Lexicographical Numbers
- [Leetcode]386. Lexicographical Numbers
- LeetCode 386. Lexicographical Numbers
- 【LeetCode】 386. Lexicographical Numbers
- [leetcode]386. Lexicographical Numbers
- LeetCode 386. Lexicographical Numbers
- LeetCode 386. Lexicographical Numbers
- [LeetCode]386. Lexicographical Numbers
- leetcode 386. Lexicographical Numbers
- 【LeetCode题解】386. Lexicographical Numbers
- LeetCode笔记:386. Lexicographical Numbers
- leetcode 386. Lexicographical Numbers 解题报告
- LeetCode-386. Lexicographical Numbers-思路详解-C++
- leetcode oj java 386. Lexicographical Numbers
- Naive and Silly Muggles(判断钝角与三点共园)
- poj-【Labyrinth】
- Android开发中常见细节问题之我见
- IOC容器和Dependency Injection模式
- 在一个nginx服务器上配置多个访问站点的方法
- LeetCode—386. Lexicographical Numbers
- Android中Canvas绘图基础详解
- Android Drawable详解
- .net下的面向工控领域的远程方法调用(RMI)中间件,客户端协议栈请求端实现
- ios代理模式深入了解一下
- #142 O(1) Check Power of 2
- Oracle数据库-4性能优化
- access时分秒
- JavaScript全局函数与自定义函数-Functions