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) {
} if (arr1.length && arr1.some(item => item !== 0)) return 1; if (arr2.length && arr2.some(item => item !== 0)) return -1; return 0; }; ``` | | —- |const n1 = arr1.shift();
const n2 = arr2.shift();
if (n1 > n2) return 1;
if (n1 < n2) return -1;
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 |
| —- |