• 牛客网——牛牛的数组匹配


    ​21天挑战的最后一篇。

    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
    想系统/深入学习某技术知识点…
    一个人摸索学习很难坚持,想组团高效学习…
    想写博客但无从下手,急需写作干货注入能量…
    热爱写作,愿意让自己成为更好的人…


    欢迎参与CSDN学习挑战赛,成为更好的自己,请参考活动中各位优质专栏博主的免费高质量专栏资源(这部分优质资源是活动限时免费开放喔~),按照自身的学习领域和学习进度学习并记录自己的学习过程。您可以从以下3个方面任选其一着手(不强制),或者按照自己的理解发布专栏学习作品,参考如下:

    前言:

    不知不觉连续更了21天,(为书包而奋斗),和大家一起学习了21天,虽然有时候太忙就水文章,但是还是学到了很多,认识了很多小伙伴,真的很开心~

    今天咱一起学习一下牛牛的数组匹配哈。

    一、牛牛的数组匹配

    ​题目:

    牛牛的数组匹配_牛客题霸_牛客网

    描述

    牛牛刚学会数组不久,他拿到两个数组 a 和 b,询问 b 的哪一段连续子数组之和与数组 a 之和最接近。

    如果有多个子数组之和同样接近,输出起始点最靠左的数组。

    输入描述:

    第一行输入两个正整数 n 和 m ,表示数组 a 和 b 的长度。

    第二第三行输入 n 个和 m 个正整数,表示数组中 a 和 b 的值。

    输出描述:

    输出子数组之和最接近 a 的子数组

    二、解题过程

    1. #include<stdio.h>
    2. /*思路:从完整数组开始,不断去掉前面的一个元素,用剩下的子数组进行下轮比较;
    3. *每轮判断规则(如果满足减去数组2当前的最后一个元素后,如果和数组1差值变小了,
    4. *就继续减去尾元素,直到满足差值最小,得到本轮最优解; 用该值和下一轮进行比较,
    5. *如果下一轮差值更小,则继续切割数组,找更下一轮,直到不满足,然后根据i,j位置输出数组元素;
    6. */
    7. #include <stdio.h>
    8. int num(int a,int b)
    9. {
    10. if(a>=b)
    11. return a-b;
    12. else
    13. return b-a;
    14. }
    15. int main()
    16. {
    17. int n,m;
    18. scanf("%d %d",&n,&m);
    19. int a[100]={0};
    20. int b[100]={0};
    21. int sum1=0,sum2=0,min,k,l;
    22. for(int i=0;i<n;i++)
    23. {
    24. scanf("%d",&a[i]);
    25. }
    26. for(int i=0;i<m;i++)
    27. {
    28. scanf("%d",&b[i]);
    29. }
    30. for(int i=0;i<n;i++)
    31. {
    32. sum1+=a[i];
    33. }
    34. min=sum1;
    35. for(int i=0;i<m;i++)
    36. {
    37. sum2=b[i];
    38. for(int j=i+1;j<=m;j++)
    39. {
    40. if(num(sum1,sum2)<min)
    41. {
    42. min=num(sum1,sum2);
    43. k=i;
    44. l=j;
    45. }
    46. sum2+=b[j];
    47. }
    48. }
    49. for(int i=k;i<l;i++)
    50. {
    51. printf("%d ",b[i]);
    52. }
    53. return 0;
    54. }


    总结

    以上就是今天要讲的内容,本文只是简单介绍了一种解题方法,希望对大家有帮助~

  • 相关阅读:
    软件测试一些基本面试问题
    C语言练习题(递归)
    阿里云服务器公网带宽如何修改?
    Excel 数学
    《JAVA EE》内部类(上篇)
    智能监控如何最大化保障生产工人权益,助力电焊车间智能化?
    项目开始前要明确的几个注意事项
    为何PHP使用率 大幅度下降!需求量几乎为零!
    【Linux】进程控制
    【微信小程序】无纸化会议OA系统之首页搭建
  • 原文地址:https://blog.csdn.net/m0_72503424/article/details/126454861