列举一些C++使用蛮力法解答的例题
时间: 2023-10-07 09:10:21 浏览: 83
几个用C++实现的算法的实例
5星 · 资源好评率100%
以下是一些使用蛮力法(暴力法)解答的C++例题:
1. 给定一个整数数组,找出其中的最大值和最小值。
```c++
#include <iostream>
using namespace std;
int main() {
int arr[] = {3, 5, 1, 9, 4, 2};
int n = sizeof(arr) / sizeof(arr[0]);
int maxVal = arr[0], minVal = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > maxVal) {
maxVal = arr[i];
}
if (arr[i] < minVal) {
minVal = arr[i];
}
}
cout << "Max value: " << maxVal << endl;
cout << "Min value: " << minVal << endl;
return 0;
}
```
2. 给定一个字符串,找出其中的所有子串。
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "hello";
int n = s.size();
for (int i = 0; i < n; i++) {
for (int len = 1; len <= n-i; len++) {
string sub = s.substr(i, len);
cout << sub << endl;
}
}
return 0;
}
```
3. 给定一个矩阵,找出其中的所有子矩阵。
```c++
#include <iostream>
using namespace std;
int main() {
int matrix[][3] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int n = sizeof(matrix) / sizeof(matrix[0]);
int m = sizeof(matrix[0]) / sizeof(matrix[0][0]);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
for (int x = i; x < n; x++) {
for (int y = j; y < m; y++) {
for (int p = i; p <= x; p++) {
for (int q = j; q <= y; q++) {
cout << matrix[p][q] << " ";
}
cout << endl;
}
}
}
}
}
return 0;
}
```
以上是三个简单的例题,使用蛮力法可以解决很多问题,但是时间复杂度可能比较高,需要根据具体问题来选择合适的算法。
阅读全文