@@ -41,7 +41,7 @@ \subsubsection{代码}
41
41
vector<vector<int> > subsets(vector<int> &S) {
42
42
vector<vector<int> > result;
43
43
vector<int> cur;
44
- std:: sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
44
+ sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
45
45
46
46
subsets(S, cur, 0, result);
47
47
return result;
@@ -78,7 +78,7 @@ \subsubsection{代码}
78
78
vector<vector<int> > subsets(vector<int> &S) {
79
79
vector<vector<int> > result;
80
80
vector<bool> selected(S.size(), false);
81
- std:: sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
81
+ sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
82
82
83
83
subsets(S, selected, 0, result);
84
84
return result;
@@ -121,7 +121,7 @@ \subsubsection{代码}
121
121
public:
122
122
vector<vector<int> > subsets(vector<int> &S) {
123
123
vector<vector<int> > result;
124
- std:: sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
124
+ sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
125
125
const size_t n = S.size();
126
126
vector<int> v;
127
127
@@ -181,31 +181,31 @@ \subsubsection{代码}
181
181
public:
182
182
vector<vector<int> > subsetsWithDup(vector<int> &S) {
183
183
vector<vector<int> > result;
184
- std:: sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
184
+ sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
185
185
186
186
unordered_map<int, int> count_map; // 记录每个元素的出现次数
187
- std:: for_each(S.begin(), S.end(), [&count_map](int e) {
187
+ for_each(S.begin(), S.end(), [&count_map](int e) {
188
188
if (count_map.find(e) != count_map.end())
189
189
count_map[e]++;
190
190
else
191
191
count_map[e] = 1;
192
192
});
193
193
194
194
// 将map里的pair拷贝到一个vector里
195
- std:: vector<pair<int, int> > elems;
196
- std:: for_each(count_map.begin(), count_map.end(),
195
+ vector<pair<int, int> > elems;
196
+ for_each(count_map.begin(), count_map.end(),
197
197
[&elems](const pair<int, int> &e) {
198
198
elems.push_back(e);
199
199
});
200
- std:: sort(elems.begin(), elems.end());
201
- std:: vector<int> path; // 中间结果
200
+ sort(elems.begin(), elems.end());
201
+ vector<int> path; // 中间结果
202
202
203
203
subsets(elems, 0, path, result);
204
204
return result;
205
205
}
206
206
207
207
private:
208
- static void subsets(const std:: vector<pair<int, int> > &elems,
208
+ static void subsets(const vector<pair<int, int> > &elems,
209
209
size_t step, vector<int> &path, vector<vector<int> > &result) {
210
210
if (step == elems.size()) {
211
211
result.push_back(path);
@@ -232,15 +232,15 @@ \subsubsection{代码}
232
232
public:
233
233
vector<vector<int> > subsetsWithDup(vector<int> &S) {
234
234
vector<vector<int> > result;
235
- std:: sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
236
- std:: vector<int> count(S.back() - S.front() + 1, 0);
235
+ sort(S.begin(), S.end()); // 本题对顺序有要求,需要排序
236
+ vector<int> count(S.back() - S.front() + 1, 0);
237
237
// 计算所有元素的个数
238
238
for(auto i = S.begin(); i != S.end(); i++) {
239
239
count[*i - S[0]]++;
240
240
}
241
241
242
242
// 每个元素选择了多少个
243
- std:: vector<int> selected(S.back() - S.front() + 1, -1);
243
+ vector<int> selected(S.back() - S.front() + 1, -1);
244
244
245
245
subsets(S, count, selected, 0, result);
246
246
return result;
@@ -281,7 +281,7 @@ \section{Permutations} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
281
281
282
282
\subsection {next_permutation() }
283
283
\label {sec:next-permutation }
284
- 偷懒的做法,可以直接使用\fn {std:: next_permutation}。如果是在OJ网站上,可以用这个API偷个懒;如果是在面试中,面试官肯定会让你重新实现。
284
+ 偷懒的做法,可以直接使用\fn {next_permutation}。如果是在OJ网站上,可以用这个API偷个懒;如果是在面试中,面试官肯定会让你重新实现。
285
285
286
286
\subsubsection {代码 }
287
287
\begin {Code }
@@ -290,11 +290,11 @@ \subsubsection{代码}
290
290
public:
291
291
vector<vector<int> > permute(vector<int> &num) {
292
292
vector<vector<int> > result;
293
- std:: sort(num.begin(), num.end());
293
+ sort(num.begin(), num.end());
294
294
295
295
do {
296
296
result.push_back(num);
297
- } while(std:: next_permutation(num.begin(), num.end()));
297
+ } while(next_permutation(num.begin(), num.end()));
298
298
return result;
299
299
}
300
300
};
@@ -377,7 +377,7 @@ \subsubsection{代码}
377
377
class Solution {
378
378
public:
379
379
vector<vector<int> > permute(vector<int>& num) {
380
- std:: sort(num.begin(), num.end());
380
+ sort(num.begin(), num.end());
381
381
382
382
vector<vector<int>> result;
383
383
vector<int> p(num.size(), 0); // 中间结果
@@ -447,19 +447,19 @@ \subsubsection{代码}
447
447
class Solution {
448
448
public:
449
449
vector<vector<int> > permuteUnique(vector<int>& num) {
450
- std:: sort(num.begin(), num.end());
450
+ sort(num.begin(), num.end());
451
451
452
452
unordered_map<int, int> count_map; // 记录每个元素的出现次数
453
- std:: for_each(num.begin(), num.end(), [&count_map](int e) {
453
+ for_each(num.begin(), num.end(), [&count_map](int e) {
454
454
if (count_map.find(e) != count_map.end())
455
455
count_map[e]++;
456
456
else
457
457
count_map[e] = 1;
458
458
});
459
459
460
460
// 将map里的pair拷贝到一个vector里
461
- std:: vector<pair<int, int> > elems;
462
- std:: for_each(count_map.begin(), count_map.end(),
461
+ vector<pair<int, int> > elems;
462
+ for_each(count_map.begin(), count_map.end(),
463
463
[&elems](const pair<int, int> &e) {
464
464
elems.push_back(e);
465
465
});
@@ -474,7 +474,7 @@ \subsubsection{代码}
474
474
475
475
private:
476
476
size_t n;
477
- typedef std:: vector<pair<int, int> >::const_iterator Iter;
477
+ typedef vector<pair<int, int> >::const_iterator Iter;
478
478
479
479
void permute(Iter first, Iter last, vector<int> &p,
480
480
vector<vector<int> > &result) {
0 commit comments