Skip to content
This repository was archived by the owner on Apr 7, 2023. It is now read-only.

Commit b0bb326

Browse files
first version
0 parents  commit b0bb326

File tree

193 files changed

+4464
-0
lines changed

Some content is hidden

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

193 files changed

+4464
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cmake-build-debug/
2+
.idea

CMakeLists.txt

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
cmake_minimum_required(VERSION 3.10)
2+
3+
project(Nowcoder)
4+
5+
set(CMAKE_CXX_STANDARD 11)
6+
7+
include_directories(.)
8+
9+
add_executable(Nowcoder
10+
config.h
11+
main.cpp
12+
Nowcoder001/Nowcoder001.cpp Nowcoder001/Nowcoder001.h
13+
Nowcoder002/Nowcoder002.cpp Nowcoder002/Nowcoder002.h
14+
Nowcoder003/Nowcoder003.cpp Nowcoder003/Nowcoder003.h
15+
Nowcoder004/Nowcoder004.cpp Nowcoder004/Nowcoder004.h
16+
Nowcoder005/Nowcoder005.cpp Nowcoder005/Nowcoder005.h
17+
Nowcoder006/Nowcoder006.cpp Nowcoder006/Nowcoder006.h
18+
Nowcoder007/Nowcoder007.cpp Nowcoder007/Nowcoder007.h
19+
Nowcoder008/Nowcoder008.cpp Nowcoder008/Nowcoder008.h
20+
Nowcoder009/Nowcoder009.cpp Nowcoder009/Nowcoder009.h
21+
Nowcoder010/Nowcoder010.cpp Nowcoder010/Nowcoder010.h
22+
Nowcoder011/Nowcoder011.cpp Nowcoder011/Nowcoder011.h
23+
Nowcoder012/Nowcoder012.cpp Nowcoder012/Nowcoder012.h
24+
Nowcoder013/Nowcoder013.cpp Nowcoder013/Nowcoder013.h
25+
Nowcoder014/Nowcoder014.cpp Nowcoder014/Nowcoder014.h
26+
Nowcoder015/Nowcoder015.cpp Nowcoder015/Nowcoder015.h
27+
Nowcoder016/Nowcoder016.cpp Nowcoder016/Nowcoder016.h
28+
Nowcoder017/Nowcoder017.cpp Nowcoder017/Nowcoder017.h
29+
Nowcoder018/Nowcoder018.cpp Nowcoder018/Nowcoder018.h
30+
Nowcoder019/Nowcoder019.cpp Nowcoder019/Nowcoder019.h
31+
Nowcoder020/Nowcoder020.cpp Nowcoder020/Nowcoder020.h
32+
Nowcoder021/Nowcoder021.cpp Nowcoder021/Nowcoder021.h
33+
Nowcoder022/Nowcoder022.cpp Nowcoder022/Nowcoder022.h
34+
Nowcoder023/Nowcoder023.cpp Nowcoder023/Nowcoder023.h
35+
Nowcoder024/Nowcoder024.cpp Nowcoder024/Nowcoder024.h
36+
Nowcoder025/Nowcoder025.cpp Nowcoder025/Nowcoder025.h
37+
Nowcoder026/Nowcoder026.cpp Nowcoder026/Nowcoder026.h
38+
Nowcoder027/Nowcoder027.cpp Nowcoder027/Nowcoder027.h
39+
Nowcoder028/Nowcoder028.cpp Nowcoder028/Nowcoder028.h
40+
Nowcoder029/Nowcoder029.cpp Nowcoder029/Nowcoder029.h
41+
Nowcoder030/Nowcoder030.cpp Nowcoder030/Nowcoder030.h
42+
Nowcoder031/Nowcoder031.cpp Nowcoder031/Nowcoder031.h
43+
Nowcoder032/Nowcoder032.cpp Nowcoder032/Nowcoder032.h
44+
Nowcoder033/Nowcoder033.cpp Nowcoder033/Nowcoder033.h
45+
Nowcoder034/Nowcoder034.cpp Nowcoder034/Nowcoder034.h
46+
Nowcoder035/Nowcoder035.cpp Nowcoder035/Nowcoder035.h
47+
Nowcoder036/Nowcoder036.cpp Nowcoder036/Nowcoder036.h
48+
Nowcoder037/Nowcoder037.cpp Nowcoder037/Nowcoder037.h
49+
Nowcoder038/Nowcoder038.cpp Nowcoder038/Nowcoder038.h
50+
Nowcoder039/Nowcoder039.cpp Nowcoder039/Nowcoder039.h
51+
Nowcoder040/Nowcoder040.cpp Nowcoder040/Nowcoder040.h
52+
Nowcoder041/Nowcoder041.cpp Nowcoder041/Nowcoder041.h
53+
Nowcoder042/Nowcoder042.cpp Nowcoder042/Nowcoder042.h
54+
Nowcoder043/Nowcoder043.cpp Nowcoder043/Nowcoder043.h
55+
Nowcoder044/Nowcoder044.cpp Nowcoder044/Nowcoder044.h
56+
Nowcoder045/Nowcoder045.cpp Nowcoder045/Nowcoder045.h
57+
Nowcoder046/Nowcoder046.cpp Nowcoder046/Nowcoder046.h
58+
Nowcoder047/Nowcoder047.cpp Nowcoder047/Nowcoder047.h
59+
Nowcoder048/Nowcoder048.cpp Nowcoder048/Nowcoder048.h
60+
Nowcoder049/Nowcoder049.cpp Nowcoder049/Nowcoder049.h
61+
Nowcoder050/Nowcoder050.cpp Nowcoder050/Nowcoder050.h
62+
Nowcoder051/Nowcoder051.cpp Nowcoder051/Nowcoder051.h
63+
Nowcoder052/Nowcoder052.cpp Nowcoder052/Nowcoder052.h
64+
Nowcoder053/Nowcoder053.cpp Nowcoder053/Nowcoder053.h
65+
Nowcoder054/Nowcoder054.cpp Nowcoder054/Nowcoder054.h
66+
Nowcoder055/Nowcoder055.cpp Nowcoder055/Nowcoder055.h
67+
Nowcoder056/Nowcoder056.cpp Nowcoder056/Nowcoder056.h
68+
Nowcoder057/Nowcoder057.cpp Nowcoder057/Nowcoder057.h
69+
Nowcoder058/Nowcoder058.cpp Nowcoder058/Nowcoder058.h
70+
Nowcoder059/Nowcoder059.cpp Nowcoder059/Nowcoder059.h
71+
Nowcoder060/Nowcoder060.cpp Nowcoder060/Nowcoder060.h
72+
Nowcoder061/Nowcoder061.cpp Nowcoder061/Nowcoder061.h
73+
Nowcoder062/Nowcoder062.cpp Nowcoder062/Nowcoder062.h
74+
Nowcoder063/Nowcoder063.cpp Nowcoder063/Nowcoder063.h
75+
Nowcoder064/Nowcoder064.cpp Nowcoder064/Nowcoder064.h
76+
Nowcoder065/Nowcoder065.cpp Nowcoder065/Nowcoder065.h
77+
Nowcoder066/Nowcoder066.cpp Nowcoder066/Nowcoder066.h
78+
Nowcoder067/Nowcoder067.cpp Nowcoder067/Nowcoder067.h)

Nowcoder001/Nowcoder001.cpp

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
5+
#include "Nowcoder001.h"
6+
7+
bool Nowcoder001::Find(int target, vector<vector<int> > array) {
8+
if (array.empty() || array[0].empty())
9+
return false;
10+
int row = array.size() - 1;
11+
int col = array[0].size() - 1;
12+
int r = 0;
13+
int c = col;
14+
while (r <= row && c >= 0) {
15+
if (array[r][c] == target)
16+
return true;
17+
else if (array[r][c] > target)
18+
--c;
19+
else
20+
++r;
21+
}
22+
return false;
23+
}
24+
25+
bool Nowcoder001::test001() {
26+
vector<vector<int>> test{{1, 2, 5, 6},
27+
{3, 4, 6, 7},
28+
{5, 6, 8, 11}};
29+
if (Find(0, test) == true)
30+
return false;
31+
if (Find(8, test) == false)
32+
return false;
33+
if (Find(4, test) == false)
34+
return false;
35+
return true;
36+
}

Nowcoder001/Nowcoder001.h

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
// 二维数组中的查找
5+
6+
#ifndef NOWCODER_NOWCODER001_H
7+
#define NOWCODER_NOWCODER001_H
8+
9+
#include "../config.h"
10+
11+
class Nowcoder001 {
12+
public:
13+
bool Find(int target, vector<vector<int> > array);
14+
15+
bool test001();
16+
};
17+
18+
19+
#endif //NOWCODER_NOWCODER001_H

Nowcoder002/Nowcoder002.cpp

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
5+
#include "Nowcoder002.h"
6+
#include <cstring>
7+
8+
void Nowcoder002::replaceSpace(char *str, int length) {
9+
if (str == nullptr || length <= 0)
10+
return;
11+
int numberofblank = 0;
12+
int orginlength = 0;
13+
for (int i = 0; *(str + i) != '\0'; ++i) {
14+
++orginlength;
15+
if (*(str + i) == ' ')
16+
++numberofblank;
17+
}
18+
if (numberofblank == 0) return;
19+
int newlength = orginlength + numberofblank * 2;
20+
if (newlength + 1 > length) return;
21+
22+
*(str + newlength) = '\0';
23+
int newindex = newlength - 1;
24+
int index = orginlength - 1;
25+
while (index >= 0 && index != newindex) {
26+
if (*(str + index) != ' ') {
27+
*(str + newindex) = *(str + index);
28+
--newindex;
29+
--index;
30+
} else {
31+
*(str + newindex--) = '0';
32+
*(str + newindex--) = '2';
33+
*(str + newindex--) = '%';
34+
--index;
35+
}
36+
}
37+
return;
38+
}

Nowcoder002/Nowcoder002.h

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
// 替换空格
5+
6+
#ifndef NOWCODER_NOWCODER002_H
7+
#define NOWCODER_NOWCODER002_H
8+
9+
#include "../config.h"
10+
11+
class Nowcoder002 {
12+
public:
13+
void replaceSpace(char *str, int length);
14+
};
15+
16+
17+
#endif //NOWCODER_NOWCODER002_H

Nowcoder003/Nowcoder003.cpp

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
5+
#include "Nowcoder003.h"
6+
7+
vector<int> Nowcoder003::printListFromTailToHead(ListNode *head) {
8+
vector<int> ans;
9+
if (head == nullptr)
10+
return ans;
11+
while (head != nullptr) {
12+
ans.push_back(head->val);
13+
head = head->next;
14+
}
15+
reverse(ans.begin(), ans.end());
16+
return ans;
17+
}

Nowcoder003/Nowcoder003.h

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
// 从尾到头打印链表
5+
6+
#ifndef NOWCODER_NOWCODER003_H
7+
#define NOWCODER_NOWCODER003_H
8+
9+
#include "../config.h"
10+
11+
class Nowcoder003 {
12+
public:
13+
vector<int> printListFromTailToHead(ListNode *head);
14+
};
15+
16+
17+
#endif //NOWCODER_NOWCODER003_H

Nowcoder004/Nowcoder004.cpp

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
5+
#include "Nowcoder004.h"
6+
7+
TreeNode *Nowcoder004::reConstructBinaryTree(vector<int> pre, vector<int> vin) {
8+
if (pre.empty() || vin.empty())
9+
return nullptr;
10+
int pl = 0;
11+
int pr = pre.size() - 1;
12+
int vl = 0;
13+
int vr = vin.size() - 1;
14+
if (pr != vr)
15+
return nullptr;
16+
return helper(pre, 0, pr, vin, 0, vr);
17+
}
18+
19+
TreeNode *Nowcoder004::helper(vector<int> &pre, int pl, int pr, vector<int> &vin, int vl, int vr) {
20+
if (pl > pr || vl > vr)
21+
return nullptr;
22+
TreeNode *ans = new TreeNode(pre[pl]);
23+
int pos;
24+
while (vin[vl + pos] != pre[pl])
25+
++pos;
26+
ans->left = helper(pre, pl + 1, pl + pos, vin, vl, vl + pos);
27+
ans->right = helper(pre, pl + pos + 1, pr, vin, vl + pos + 1, vr);
28+
return ans;
29+
}

Nowcoder004/Nowcoder004.h

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
// 重建二叉树
5+
6+
#ifndef NOWCODER_NOWCODER004_H
7+
#define NOWCODER_NOWCODER004_H
8+
9+
#include "../config.h"
10+
11+
class Nowcoder004 {
12+
public:
13+
TreeNode *reConstructBinaryTree(vector<int> pre, vector<int> vin);
14+
15+
TreeNode *helper(vector<int> &pre, int pl, int pr, vector<int> &vin, int vl, int vr);
16+
};
17+
18+
19+
#endif //NOWCODER_NOWCODER004_H

Nowcoder005/Nowcoder005.cpp

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
5+
#include "Nowcoder005.h"
6+
7+
void Nowcoder005::push(int node) {
8+
stack1.push(node);
9+
}
10+
11+
int Nowcoder005::pop() {
12+
int ans;
13+
if (stack2.empty()) {
14+
while (!stack1.empty()) {
15+
stack2.push(stack1.top());
16+
stack1.pop();
17+
}
18+
}
19+
ans = stack2.top();
20+
stack2.pop();
21+
return ans;
22+
}

Nowcoder005/Nowcoder005.h

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
// 用两个栈实现队列
5+
6+
#ifndef NOWCODER_NOWCODER005_H
7+
#define NOWCODER_NOWCODER005_H
8+
9+
#include "../config.h"
10+
11+
class Nowcoder005 {
12+
public:
13+
void push(int node);
14+
15+
int pop();
16+
17+
private:
18+
stack<int> stack1;
19+
stack<int> stack2;
20+
};
21+
22+
23+
#endif //NOWCODER_NOWCODER005_H

Nowcoder006/Nowcoder006.cpp

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
5+
#include "Nowcoder006.h"
6+
7+
int Nowcoder006::minNumberInRotateArray(vector<int> rotateArray) {
8+
int low = 0;
9+
int high = rotateArray.size() - 1;
10+
if (rotateArray[low] < rotateArray[high])
11+
return rotateArray[low];
12+
13+
int mid;
14+
while (rotateArray[low] >= rotateArray[high]) {
15+
if (low + 1 == high) {
16+
mid = high;
17+
break;
18+
}
19+
mid = low + (high - low) / 2;
20+
if (rotateArray[low] == rotateArray[mid] && rotateArray[mid] == rotateArray[high]) {
21+
return MinOrder(rotateArray, low, high);
22+
}
23+
if (rotateArray[mid] >= rotateArray[low])
24+
low = mid;
25+
else
26+
high = mid;
27+
}
28+
return rotateArray[mid];
29+
}
30+
31+
int Nowcoder006::MinOrder(vector<int> &num, int low, int high) {
32+
int ans = num[low];
33+
for (int i = low + 1; i <= high; ++i) {
34+
if (num[i] < ans) {
35+
ans = num[i];
36+
break;
37+
}
38+
}
39+
return ans;
40+
}

Nowcoder006/Nowcoder006.h

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//
2+
// Created by cestl on 2018/5/10 0010.
3+
//
4+
// 旋转数组的最小数字
5+
6+
#ifndef NOWCODER_NOWCODER006_H
7+
#define NOWCODER_NOWCODER006_H
8+
9+
#include "../config.h"
10+
11+
class Nowcoder006 {
12+
public:
13+
int minNumberInRotateArray(vector<int> rotateArray);
14+
15+
private:
16+
int MinOrder(vector<int> &num, int low, int high);
17+
};
18+
19+
20+
#endif //NOWCODER_NOWCODER006_H

0 commit comments

Comments
 (0)