20220429, 不通过
|
```javascript
/**
- @param {number[]} nums1
- @param {number[]} nums2
@return {number} */ // 21:25 -> var findMedianSortedArrays = function(nums1, nums2) { const len1 = nums1.length; const len2 = nums2.length; const len = len1 + len2; if (len1 > len2) { return findMedianSortedArrays(nums2, nums1); } let start = 0, end = len1 -1; // while(start < end) { // bug: while(start <= end) { let i = (start + end) >> 2; let j = ((len1 + len2 + 1) >> 2) - i; // const l1 = i < 0 ? -Infinity : nums1[i-1]; // bug: const l1 = i < 1 ? -Infinity : nums1[i-1]; const r1 = i > len1 - 1 ? Infinity : nums1[i]; // const l2 = j < 0 ? -Infinity: nums2[j-1]; // bug const l2 = j < 1 ? -Infinity: nums2[j-1]; const r2 = j > len2 - 1 ? Infinity : nums2[j]; console.log(l1, l2, r1, r2) if(l1 > r2) { start—; } else if(l2 > r2) { end—; } else { return len % 2 === 0 ? ((Math.max(l1, l2) + Math.min(r1, r2)) / 2) : Math.max(l1, l2); } } };
改成能通过:```javascript// 21:25 -> 21:57var findMedianSortedArrays = function(nums1, nums2) {const len1 = nums1.length;const len2 = nums2.length;const len = len1 + len2;if (len1 > len2) {return findMedianSortedArrays(nums2, nums1);}// let start = 0, end = len1 -1;let start = 0, end = len1;let i; let j;// while(start < end) { // bug:while(start <= end) {// let i = (start + end) >> 2;// let j = ((len1 + len2 + 1) >> 2) - i;i = (start + end) >> 1;j = ((len + 1) >> 1) - i;// const l1 = i < 0 ? -Infinity : nums1[i-1]; // bug:// const l1 = i < 1 ? -Infinity : nums1[i-1];const l1 = i === 0 ? -Infinity : nums1[i-1];// const r1 = i > len1 - 1 ? Infinity : nums1[i];const r1 = i === len1 ? Infinity : nums1[i];// const l2 = j < 0 ? -Infinity: nums2[j-1]; // bug// const l2 = j < 1 ? -Infinity: nums2[j-1];const l2 = j === 0 ? -Infinity: nums2[j-1];// const r2 = j > len2 - 1 ? Infinity : nums2[j];const r2 = j === len2 ? Infinity : nums2[j];if(l1 > r2) {// start--;end = i - 1;// } else if(l2 > r2) {}else if(l2 > r1){// end--;start = i + 1;} else {return len % 2 === 0 ? ((Math.max(l1, l2) + Math.min(r1, r2)) / 2) : Math.max(l1, l2);}}};
| | —- |
