20220509,8min,中间相差11天

|
```javascript /**

  • @param {string} version1
  • @param {string} version2
  • @return {number} */ // 20:59 -> 21:07 var compareVersion = function(version1, version2) { // const arr1 = version1.split(‘.’).map(item => ~~item).filter(item => !!item); // bug:如果是0.1,直接将0去掉了,就出错了 const arr1 = version1.split(‘.’).map(item => ~~item); // const arr2 = version2.split(‘.’).map(item => ~~item).filter(item => !!item); const arr2 = version2.split(‘.’).map(item => ~~item); // while(arr1 && arr2) { // bug while(arr1.length && arr2.length) {
    1. const n1 = arr1.shift();
    2. const n2 = arr2.shift();
    3. if (n1 > n2) return 1;
    4. if (n1 < n2) return -1;
    } if (arr1.length && arr1.some(item => item !== 0)) return 1; if (arr2.length && arr2.some(item => item !== 0)) return -1; return 0; }; ``` | | —- |

20220420,6min

|
```javascript // 09:07 -> 09:13 var compareVersion = function(version1, version2) { const arr1 = version1.split(‘.’); const arr2 = version2.split(‘.’);

while(arr1.length && arr2.length) { const n1 = ~~arr1.shift(); const n2 = ~~arr2.shift(); if (n1 > n2) return 1; if (n1 < n2) return -1; } if (arr1.length && arr1.some(item => ~~item !== 0)) { return 1 } if (arr2.length && arr2.some(item => ~~item !== 0)) { return -1 } return 0; };

执行用时:**48 ms**, 在所有 JavaScript 提交中击败了**98.51%**的用户<br />内存消耗:**41.1 MB**, 在所有 JavaScript 提交中击败了**30.74%**的用户<br />通过测试用例:**82 / 82** |
| --- |

<a name="voeeG"></a>
## 20220419,6min
| <br />```javascript
/**
 * @param {string} version1
 * @param {string} version2
 * @return {number}
 */
 // 13:21 -> 13:27
var compareVersion = function(version1, version2) {
  let arr1 = version1.split('.');
  let arr2 = version2.split('.');
  while(arr1.length && arr2.length) {
    const n1 = Number(arr1.shift());
    const n2 = Number(arr2.shift());
    if (n1 > n2) return 1;
    // if (n1 < n2) return 2; //  bug:笔误
    if (n1 < n2) return -1;
  }
  if (arr1.length > 0) {
    return arr1.every(item => Number(item) === 0) ? 0 : 1;
  }
  if (arr2.length > 0) {
    return arr2.every(item => Number(item) === 0) ? 0 : -1;
  }
  return 0;
};

| | —- |

20220419,6min,first

|
javascript // 10:19 -> 10:25 var compareVersion = function(version1, version2) { const arr1 = version1.split('.'); const arr2 = version2.split('.'); const len1 = arr1.length; const len2 = arr2.length; let result = 0; for (let i = 0; i < Math.max(len1, len2); i++) { const n1 = arr1[i] ? Number(arr1[i]) : 0; const n2 = arr2[i] ? Number(arr2[i]) : 0; if (n1 > n2) { result = 1; break; } else if (n1 < n2) { result = -1; break; } } return result; }; 执行用时:64 ms, 在所有 JavaScript 提交中击败了49.67%的用户
内存消耗:41.2 MB, 在所有 JavaScript 提交中击败了27.33%的用户
通过测试用例:82 / 82 | | —- |