Advertisement
Ann0831

leetcode 4 stupid code

Jul 19th, 2021
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.99 KB | None | 0 0
  1.  
  2.  
  3. double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size){
  4. int p1=0;
  5. int p2=0;
  6. int i=0;
  7. int j=0;
  8. int k=(nums1Size+nums2Size)%2;
  9. int e11=-1;
  10. int e12=-1;
  11. int e21=-1;
  12. int e22=-1;
  13. //printf("k=%d\n",k);
  14.  
  15. while(i<nums1Size){
  16. //printf("hi\n");
  17. while(j<nums2Size&&nums1[i]>=nums2[j])
  18. j++;
  19. if((i+j==(nums1Size+nums2Size)/2)&&k==1){
  20. p1=i;return nums1[i];
  21. }
  22. if(i+j==(nums1Size+nums2Size)/2-1&&k==0){
  23. e11=i;
  24. //printf("1record%d\n",i);
  25. }
  26. if((i+j==(nums1Size+nums2Size)/2&&k==0)){
  27. e12=i;
  28. //printf("1record%d\n",i);
  29. }
  30. i++;
  31. }
  32. i=0;
  33. j=0;
  34. while(i<nums1Size){
  35. //printf("hi\n");
  36. while(j<nums2Size&&nums1[i]>nums2[j])
  37. j++;
  38. if((i+j==(nums1Size+nums2Size)/2)&&k==1){
  39. p1=i;return nums1[i];
  40. }
  41. if(i+j==(nums1Size+nums2Size)/2-1&&k==0){
  42. e11=i;
  43. //printf("1record%d\n",i);
  44. }
  45. if((i+j==(nums1Size+nums2Size)/2&&k==0)){
  46. e12=i;
  47. //printf("1record%d\n",i);
  48. }
  49. i++;
  50. }
  51. i=0;
  52. j=0;
  53. while(j<nums2Size){
  54. while(i<nums1Size&&nums2[j]>=nums1[i])
  55. i++;
  56. if(i+j==(nums1Size+nums2Size)/2&&k==1){
  57. p2=j;//printf("2way\n");
  58. return nums2[j];
  59. }
  60. if(i+j==(nums1Size+nums2Size)/2-1&&k==0){
  61. e21=j;
  62. //printf("2record%d\n",j);
  63. }
  64. if((i+j==(nums1Size+nums2Size)/2&&k==0)){
  65. e22=j;
  66. //printf("2record%d\n",j);
  67. }
  68. j++;
  69. }
  70. i=0;
  71. j=0;
  72. while(j<nums2Size){
  73. while(i<nums1Size&&nums2[j]>nums1[i])
  74. i++;
  75. if(i+j==(nums1Size+nums2Size)/2&&k==1){
  76. p2=j;//printf("2way\n");
  77. return nums2[j];
  78. }
  79. if(i+j==(nums1Size+nums2Size)/2-1&&k==0){
  80. e21=j;
  81. //printf("2record%d\n",j);
  82. }
  83. if((i+j==(nums1Size+nums2Size)/2&&k==0)){
  84. e22=j;
  85. //printf("2record%d\n",j);
  86. }
  87. j++;
  88. }
  89. //printf("e11:%d,e12:%d,e21:%d,e22:%d",e11,e12,e21,e22);
  90. if(e21*e22>=0&&e21+e22>=0){
  91. //printf("**1\n");
  92. return (nums2[e21]+nums2[e22])/2.0;
  93. }
  94. if(e11*e12>=0&&e11+e12>=0){
  95. //printf("**2\n");
  96. return (nums1[e11]+nums1[e12])/2.0;
  97. }
  98. if(e11*e21>=0&&e11+e21>=0){
  99. //printf("**3\n");
  100. return (nums1[e11]+nums2[e21])/2.0;
  101. }
  102. if(e11*e22>=0&&e11+e22>=0){
  103. //printf("**4\n");
  104. return (nums1[e11]+nums2[e22])/2.0;
  105. }
  106. if(e12*e21>=0&&e12+e21>=0){
  107. //printf("**5\n");
  108. return (nums1[e12]+nums2[e21])/2.0;
  109. }
  110. if(e12*e22>=0&&e12+e22>=0){
  111. //printf("**6\n");
  112. return (nums1[e12]+nums2[e22])/2.0;
  113. }
  114. printf("return 0");
  115. return 0;
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement