当前位置:   article > 正文

《leetcode刷题讲解》—漫漫编程路_leetcode malloc

leetcode malloc

目录

1.题目描述

2.代码及解析


1.题目描述

leetcode 4.寻找两个正序数组的中位数

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数

算法的时间复杂度应该为 O(log (m+n)) 。

来源:力扣(LeetCode)
链接:4. 寻找两个正序数组的中位数 - 力扣(LeetCode) (leetcode-cn.com)


2.代码及解析

  1. double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){
  2. double mid=0.0;
  3. int n=0,i=0,j=0;
  4. int *sum=(int *)malloc(sizeof(int)*(nums1Size+nums2Size));
  5. while(i<nums1Size&&j<nums2Size)
  6. {
  7. if(nums1[i]<nums2[j])
  8. {
  9. sum[n]=nums1[i];
  10. i++;
  11. }
  12. else
  13. {
  14. sum[n]=nums2[j];
  15. j++;
  16. }
  17. n++;
  18. }
  19. while(i<nums1Size)
  20. {
  21. sum[n]=nums1[i];
  22. n++;i++;
  23. }
  24. while(j<nums2Size)
  25. {
  26. sum[n]=nums2[j];
  27. n++;j++;
  28. }
  29. if((nums1Size+nums2Size)%2==1)
  30. {
  31. mid=sum[n/2]/1.0;
  32. return mid;
  33. }
  34. else
  35. {
  36. mid=(sum[(n+1)/2]+sum[(n-1)/2])/2.0;
  37. return mid;
  38. }
  39. }

本算法为暴力解法,自己写的第一道hard,一眼看上去没什么思路,就把第一眼想到的暴力算法写出来,没想到直接就过了,看答案的标解有点复杂,待博主搞清楚了再来补充。

本文到此结束,感谢大家的阅读,欢迎大家点赞评论互关,祝大家万事如意。

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

闽ICP备14008679号