Skip to content

Commit 69013fa

Browse files
committed
Next Permutation
1 parent 2e58b9a commit 69013fa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+164
-1
lines changed
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include<vector>
2+
3+
using namespace std;
4+
void swap(int i, int j, vector<int>&num)
5+
{
6+
int temp = num[i];
7+
num[i] = num[j];
8+
num[j] = temp;
9+
}
10+
11+
void nextPermutation(vector<int> &num) {
12+
13+
int i = 0, j = 0;
14+
15+
for(i = num.size() - 2; i >= 0; i--)
16+
{
17+
if(num[i] < num[i+1]) break;
18+
}
19+
20+
if(i >= 0)
21+
{
22+
for(j = num.size() - 1; j > i; j--)
23+
{
24+
if(num[j] > num[i]) break;
25+
}
26+
27+
swap(i,j,num);
28+
}
29+
30+
reverse(num.begin() + i + 1, num.end());
31+
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/*
2+
* Next_Permutation.cpp
3+
*
4+
* Created on: 2014-2-1
5+
* Author: Jie Feng
6+
*/
7+
8+
9+
10+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
void swap(int i, int j, vector<int>&num)
2+
{
3+
int temp = num[i];
4+
num[i] = num[j];
5+
num[j] = temp;
6+
}
7+
8+
void nextPermutation(vector<int> &num) {
9+
10+
int i = 0, j = 0;
11+
12+
for(i = num.size() - 2; i >= 0; i--)
13+
{
14+
if(num[i] < num[i+1]) break;
15+
}
16+
17+
if(i >= 0)
18+
{
19+
for(j = num.size() - 1; j > i; j--)
20+
{
21+
if(num[j] > num[i]) break;
22+
}
23+
24+
swap(i,j,num);
25+
}
26+
27+
reverse(num.begin() + i + 1, num.end());
28+
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
void swap(int i, int j, vector<int>&num)
2+
{
3+
int temp = num[i];
4+
num[i] = num[j];
5+
num[j] = temp;
6+
}
7+
8+
void nextPermutation(vector<int> &num) {
9+
10+
int i = 0, j = 0;
11+
12+
for(i = num.size() - 2; i >= 0; i--)
13+
{
14+
if(num[i] < num[i+1]) break;
15+
}
16+
17+
if(i >= 0)
18+
{
19+
for(j = num.size() - 1; j > i; j--)
20+
{
21+
if(num[j] > num[i]) break;
22+
}
23+
24+
swap(i,j,num);
25+
}
26+
27+
reverse(num.begin() + i + 1, num.end());
28+
29+
}

.metadata/.plugins/org.eclipse.core.resources/.history/f4/e01f6df1bc8b00131f26b800868fbf5f

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#include<vector>
2+
void swap(int i, int j, vector<int>&num)
3+
{
4+
int temp = num[i];
5+
num[i] = num[j];
6+
num[j] = temp;
7+
}
8+
9+
void nextPermutation(vector<int> &num) {
10+
11+
int i = 0, j = 0;
12+
13+
for(i = num.size() - 2; i >= 0; i--)
14+
{
15+
if(num[i] < num[i+1]) break;
16+
}
17+
18+
if(i >= 0)
19+
{
20+
for(j = num.size() - 1; j > i; j--)
21+
{
22+
if(num[j] > num[i]) break;
23+
}
24+
25+
swap(i,j,num);
26+
}
27+
28+
reverse(num.begin() + i + 1, num.end());
29+
30+
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
338 Bytes
Binary file not shown.

.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.cdt.managedbuilder.core.prefs

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ properties/Median_Two_Arrays.cdt.managedbuild.target.gnu.mingw.exe.1784538447/cd
2424
properties/Missing_Number.cdt.managedbuild.target.gnu.mingw.exe.864236119/cdt.managedbuild.config.gnu.mingw.exe.debug.1909975297=\#\r\n\#Sat Feb 01 13\:04\:00 PST 2014\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.debug.1091109728\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1891826437\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.949516072\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.626693221\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.129851371\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.1988072978\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.598339246\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n
2525
properties/Missing_Number.cdt.managedbuild.target.gnu.mingw.exe.864236119/cdt.managedbuild.config.gnu.mingw.exe.release.1863428767=\#\r\n\#Sat Feb 01 13\:04\:00 PST 2014\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.1851833003\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release.970313542\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.release.958758867\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.release.1236793556\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.296977145\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.2120556562\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.release.2072396633\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n
2626
properties/Palindrome.cdt.managedbuild.target.gnu.mingw.exe.1807327887/cdt.managedbuild.config.gnu.mingw.exe.debug.1821198171=\#\r\n\#Sat Feb 01 13\:04\:00 PST 2014\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.1989933376\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.292068295\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.debug.381070184\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.1874692786\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.163519642\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.519536450\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1391808525\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n
27-
properties/Permutation.cdt.managedbuild.target.gnu.mingw.exe.608242234/cdt.managedbuild.config.gnu.mingw.exe.debug.393885220=\#\r\n\#Sat Feb 01 13\:04\:00 PST 2014\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.537310806\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.275395880\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.158166434\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.807330415\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.debug.2108901766\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1231686182\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.337297488\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n
27+
properties/Permutation.cdt.managedbuild.target.gnu.mingw.exe.608242234/cdt.managedbuild.config.gnu.mingw.exe.debug.393885220=\#\r\n\#Sat Feb 01 19\:48\:47 PST 2014\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.537310806\=\\\#\\r\\n\\\#Sat Feb 01 19\\\:48\\\:47 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.275395880\=\\\#\\r\\n\\\#Sat Feb 01 19\\\:48\\\:47 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.158166434\=\\\#\\r\\n\\\#Sat Feb 01 19\\\:48\\\:47 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.807330415\=\\\#\\r\\n\\\#Sat Feb 01 19\\\:48\\\:47 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.debug.2108901766\=\\\#\\r\\n\\\#Sat Feb 01 19\\\:48\\\:47 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1231686182\=\\\#\\r\\n\\\#Sat Feb 01 19\\\:48\\\:47 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.337297488\=\\\#\\r\\n\\\#Sat Feb 01 19\\\:48\\\:47 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n
2828
properties/Permutation.cdt.managedbuild.target.gnu.mingw.exe.608242234/cdt.managedbuild.config.gnu.mingw.exe.release.1016328306=\#\r\n\#Sat Feb 01 13\:04\:00 PST 2014\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.release.824103577\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.release.426339807\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.1219541878\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.release.1568629963\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.release.1576739043\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.release.130938789\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.release.1157220536\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n
2929
properties/Recursive_DFS.cdt.managedbuild.target.gnu.mingw.exe.803507604/cdt.managedbuild.config.gnu.mingw.exe.debug.1618314159=\#\r\n\#Sat Feb 01 16\:41\:13 PST 2014\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1536608685\=\\\#\\r\\n\\\#Sat Feb 01 16\\\:41\\\:13 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.784964132\=\\\#\\r\\n\\\#Sat Feb 01 16\\\:41\\\:13 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.1076319416\=\\\#\\r\\n\\\#Sat Feb 01 16\\\:41\\\:13 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.debug.1387289073\=\\\#\\r\\n\\\#Sat Feb 01 16\\\:41\\\:13 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1032007320\=\\\#\\r\\n\\\#Sat Feb 01 16\\\:41\\\:13 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.1863701794\=\\\#\\r\\n\\\#Sat Feb 01 16\\\:41\\\:13 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.601021687\=\\\#\\r\\n\\\#Sat Feb 01 16\\\:41\\\:13 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n
3030
properties/Spiral_Matrix.cdt.managedbuild.target.gnu.mingw.exe.1523954641/cdt.managedbuild.config.gnu.mingw.exe.debug.1928542567=\#\r\n\#Sat Feb 01 13\:04\:00 PST 2014\r\ncdt.managedbuild.tool.gnu.assembler.mingw.exe.debug.1029470092\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.linker.mingw.exe.debug.1211677015\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.1688101392\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.627169671\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.c.linker.mingw.exe.debug.1167873049\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.tool.gnu.archiver.mingw.base.1389165702\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\ncdt.managedbuild.toolchain.gnu.mingw.exe.debug.1408425993\=\\\#\\r\\n\\\#Sat Feb 01 13\\\:04\\\:00 PST 2014\\r\\nrebuildState\\\=true\\r\\n\r\n

Permutation/Next_Permutation.cpp

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include<vector>
2+
3+
using namespace std;
4+
5+
void swap(int i, int j, vector<int>&num)
6+
{
7+
int temp = num[i];
8+
num[i] = num[j];
9+
num[j] = temp;
10+
}
11+
12+
void nextPermutation(vector<int> &num) {
13+
14+
int i = 0, j = 0;
15+
16+
for(i = num.size() - 2; i >= 0; i--)
17+
{
18+
if(num[i] < num[i+1]) break;
19+
}
20+
21+
if(i >= 0)
22+
{
23+
for(j = num.size() - 1; j > i; j--)
24+
{
25+
if(num[j] > num[i]) break;
26+
}
27+
28+
swap(i,j,num);
29+
}
30+
31+
reverse(num.begin() + i + 1, num.end());
32+
33+
}

0 commit comments

Comments
 (0)