帮我写一个贪心算法的c++代码
时间: 2023-11-21 18:00:18 浏览: 74
c++编程的贪心算法代码
4星 · 用户满意度95%
以下是一个简单的贪心算法的C代码,该算法用于找到一组数字中的最大和子序列:
```c
#include <stdio.h>
int findMaxSum(int arr[], int n) {
int maxSum = arr[0], sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
if (sum > maxSum) {
maxSum = sum;
}
if (sum < 0) {
sum = 0;
}
}
return maxSum;
}
int main() {
int arr[] = {1, -2, 3, 4, -5, 8};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Max sum of subsequence is %d\n", findMaxSum(arr, n));
return 0;
}
```
该算法的基本思想是在遍历数组时,从当前位置开始向后遍历,只要加上当前数字后得到的和比之前的最大和大,就更新最大和。如果当前的和变成了负数,那么将其归零。这种方法可以保证得到最大和的子序列。
阅读全文