LeetCode-386. Lexicographical Numbers-思路详解-C++
2017-01-11 16:28
435 查看
题目
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.
翻译
给定一个整数,返回从1~n的字典序排列。例如:假设13.返回结果: [1,10,11,12,13,2,3,4,5,6,7,8,9].
思路
这个题目从题面上可以看出是一个构造的题目,而且是一个典型的回溯的问题。代码
class Solution { public: vector<int> lexicalOrder(int n) { vector<int> res; for(int i = 1; i < 10; i++){ dfs(i,n,res); } return res; } void dfs(int cur,int n,vector<int> &res){ if(cur > n ){ return; }else{ res.push_back(cur); for(int i = 0; i < 10; i ++){ if(10*cur+ i > n){ }else{ dfs(10*cur+i,n,res); } } } } };
相关文章推荐
- LeetCode - 216. Combination Sum III - 思路详解 - C++
- LeetCode - 228. Summary Ranges - 思路详解- C++
- LeetCode - 162. Find Peak Element - 思路详解 - C++
- LeetCode - 189. Rotate Array - 思路详解 - C++
- LeetCode - 121. Best Time to Buy and Sell Stock - 思路详解 - C++
- LeetCode -485. Max Consecutive Ones - 思路详解 - C++
- LeetCode- 238. Product of Array Except Self - 思路详解 -C++
- LeetCode-268. Missing Number-思路详解-C++
- LeetCode-38. Count and Say-思路详解-C++
- LeetCode - 123. Best Time to Buy and Sell Stock III - 思路详解 - C++
- LeetCode- 167. Two Sum II - Input array is sorted - 思路详解- C++
- LeetCode-399. Evaluate Division-思路详解-C++
- LeetCode- 169. Majority Element - 思路详解 -C++
- LeetCode - 152. Maximum Product Subarray - 思路详解 - C++
- LeetCode - 88. Merge Sorted Array - 思路详解 - C++
- LeetCode - 128. Longest Consecutive Sequence - 思路详解- C++
- LeetCode- 289. Game of Life - 思路详解-C++
- LeetCode - 217. Contains Duplicate - 思路详解 - C++
- LeetCode - 401. Binary Watch - 思路详解-C++
- LeetCode - 283. Move Zeroes - 思路详解 - C++