这个代码,打到这里的话,怎么才能实现输出最大子序列的长度呢?
1条回答 默认 最新
关注 可以使用滑动窗口方法。
#include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int n, i; int *num; scanf_s("%d", &n); num = (int *)calloc(n, sizeof(int)); for (i = 0; i < n; i++) { scanf_s("%d", num + i); } int left = 0; int max = 0; int len = 0; while (left < n - 1) { int index = left; int sum = 0; while (index < n) { sum += num[index]; if (sum > max) { max = sum; len = index - left; } else if (sum == max && len < (index - left)) { len = index - left; } index++; } left++; } printf("%d %d\n", max, len + 1); free(num); getchar(); return 0; }
如果对您有用,望采纳。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥170 如图所示配置eNSP
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上