当前位置:   article > 正文

485题 力扣入门系列 c语言编写_力扣c语言

力扣c语言

 题目:

 思想:

 

 

 我的代码

  1. int findMaxConsecutiveOnes(int* nums, int numsSize)
  2. {
  3. int maxsize = 0, size = 0;
  4. for (int i = 0; i < numsSize; i++)
  5. {
  6. if (nums[i] == 1) //我的判断位置
  7. {
  8. maxsize++;
  9. if (maxsize > size)
  10. {
  11. size = maxsize;
  12. }
  13. }
  14. else
  15. {
  16. maxsize = 0;
  17. }
  18. }
  19. return size;
  20. }

官方代码

  1. int findMaxConsecutiveOnes(int* nums, int numsSize) {
  2. int maxCount = 0, count = 0;
  3. for (int i = 0; i < numsSize; i++) {
  4. if (nums[i] == 1) {
  5. count++;
  6. } else {
  7. maxCount = fmax(maxCount, count);
  8. count = 0;
  9. }
  10. }
  11. maxCount = fmax(maxCount, count);
  12. return maxCount;
  13. }
  14. 作者:LeetCode-Solution
  15. 链接:https://leetcode-cn.com/problems/max-consecutive-ones/solution/zui-da-lian-xu-1de-ge-shu-by-leetcode-so-252a/
  16. 来源:力扣(LeetCode)
  17. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 个人优缺点

缺点

      maxCount = fmax(maxCount, count);

官方回答调用了系统函数,

不过建议新手自己写。

优点:(下面有例子,文字看不懂没问题)

在判断中我判断是否记录入maxsize位置与官方不一致。(建议(边看代码,边往下看)

其原因在于在我的判断发生在每一次记录成功之时,也就是nums【i】=1;这样每一次这个条件判断成功,就会于之前的maxsize发生比较。

而官方代码是nums【i】!=1时进行比较。也就是说尽管count已经大于原来的数,但还要nums【i】!=1时才比较,所以在最后还要在循环结束后计较一番    

例子:

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/思考机器/article/detail/62806
推荐阅读
相关标签
  

闽ICP备14008679号