20220426, 7min

|
```javascript /**

  • @param {number[]} nums
  • @param {number} target
  • @return {number[]} */ // 15:13 -> 15:20 var twoSum = function(nums, target) { if (nums.length < 2) return [] const obj = {} for (let i = 0; i < nums.length; i++) { const rest = target - nums[i]; // if (obj[rest] !== undefind) { // bug:undefind is not defined // 应该是undefined, 不是undefind // if (typeof obj[rest] !== ‘undefind’) { if (typeof obj[rest] !== ‘undefined’) {

    return [obj[rest], i]; } obj[nums[i]] = i; } }; ``` | | —- |

20220420,16min

|
```javascript /**

  • @param {number[]} nums
  • @param {number} target
  • @return {number[]} */ // 09:14 -> 09:30 var twoSum = function(nums, target) { let obj = {} for (let i = 0; i < nums.length; i++) { const rest = target - nums[i]; // if (obj[rest]) { if (obj[rest] !== undefind){ // bug:不能写obj[rest],因为这样写的话,如果下标是0,也会被排除 return [obj[rest], i] } else { // obj[rest] = i // bug: obj[nums[i]] = i } } return [] }; ``` | | —- |

20220418,超出时间限制

|
```javascript // 21:55 -> 22:02 // var twoSum = function(nums, target) { const len = nums.length; let arr = []; for (let i = 0; i < len; i++) { const rest = target - nums[i]; for (let j = i + 1; j < len; i++) { if (rest === nums[j]) { arr.push([i, j]) break; } } } return arr[0]; };

  1. |
  2. | --- |
  3. <a name="jDLTQ"></a>
  4. ## 20220415, 7min
  5. | <br />```javascript
  6. /**
  7. * @param {number[]} nums
  8. * @param {number} target
  9. * @return {number[]}
  10. */
  11. // 15:24 -> 15:31
  12. var twoSum = function(nums, target) {
  13. let obj = {}
  14. for (let i = 0; i < nums.length; i++) {
  15. const rest = target - nums[i];
  16. if (obj[rest] !== undefined) {
  17. return [obj[rest], i]
  18. }
  19. // obj[i] = i // bug
  20. obj[nums[i]] = i;
  21. }
  22. return []
  23. };

| | —- |

20220414,12min

|
```javascript /**

  • @param {number[]} nums
  • @param {number} target
  • @return {number[]} */ // 11:56 -> 12:08 // 变量 // 循环,计算rest = target - 当前值,如果obj[rest]不为undefined,则表示当前值 和obj中存的rest的值相加为target,返回;如果不为undefined,则存入到obj中 // 如果都没有,返回空数组 var twoSum = function(nums, target) {

    // const map = new Map() // bug // const map = {} // for (let i = 0; i < nums.length; i++) { // const rest = target - nums[i] // if (map.has(nums[i])) {

    // } // map[nums[i]] = i; // }

const obj = {}

for (let i = 0; i < nums.length; i++) { const rest = target - nums[i]; if (obj[rest] !== undefined) { return [obj[rest], i] } obj[nums[i]] = i } return [] };

 |
| --- |


<a name="owxxh"></a>
## 20220413, 30min
| <br />```javascript
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
 // 11:06 -> 
var twoSum = function(nums, target) {
  let len = nums.length;
  let left = 0;
  let right = 0;
  for (let i = 0; i < len; i++) {
    // while(len - i > 0 && (nums[i] + nums[len-i]) === target) {

    // }
    // console.log('len-i:', len-i);
    // for (let j = (i + 1); j <= len - i; j++) { // bug:
      for (let j = (i + 1); j <= len; j++) {
      // for (let j = 1; j < len; j++) {
      // if (nums[i] + nums[j] === target) {
      if ((nums[i] + nums[j]) === target) {
        left = i;
        right = j;
        // continue;
      }
    }
  }
  return [left, right];
};

执行用时:144 ms, 在所有 JavaScript 提交中击败了19.08%的用户
内存消耗:41.2 MB, 在所有 JavaScript 提交中击败了74.91%的用户
通过测试用例:57 / 57 | | —- |