Home » JavaScript » LeetCode Two Sum JavaScript solutions

started the first question on the LeetCode brush problem: Two Sum

1, idea 1: use regular to match data and get index:

`/*** @param, {number[]}, nums* @param, {number}, target* @return {number[]}* /Var twoSum = function (nums, target) {"Var str=", "+nums.toString" () +",";For (VaR i=0; iVar info=target-nums[i];VaR, patt1 = new, RegExp ("," +info+ "," "));Var result = patt1.test (STR);Var init=nums.indexOf (info)If (result & & init! =i) {Return, [i, init];}}}; `
. Results: the... Is not ideal, "LeetCode Two alt=

thinking 2: use the indexOf function to get subscript

`/*** @param, {number[]}, nums* @param, {number}, target* @return {number[]}* /Var twoSum = function (nums, target) {Var k=0;For (VaR i=0; iK=nums.indexOf (target-nums[i]);If (K =-1 & & K!! {=i)Return, [i, k];}}}. `
results: in general, there can be improvements,

Idea 3: array subscript and numeric inversion

`/*** @param, {number[]}, nums* @param, {number}, target* @return {number[]}* /Var twoSum = function (nums, target) {Var k=[];Var j=0;Var l=0;For (VaR i=0; iL=nums[i];J=k[target-l];If (J, =undefined) {Return, [j, i];}K[l]=i;}}, `
results: a step further, silly water

thinking 4: on the basis of the idea 3, reduce the operation of array subscript

`/*** @param, {number[]}, nums* @param, {number}, target* @return {number[]}* /Var twoSum = function (nums, target) {Var k=[];For (VaR i=0; iVar l=nums[i];Var j=k[target-l];If (J, =undefined) {Return, [j, i];}K[l]=i;}}, `
result: better than the last one, lost, no difference,

Thinking 5; of course, also learn from the use of other objects for data storage,

`/*** @param, {number[]}, nums* @param, {number}, target* @return {number[]}* /Var twoSum = function (nums, target) {Var k={};For (VaR i=0; iVar l=nums[i];Var j=k[target-l];If (J, =undefined) {Return, [j, i];}K[l]=i;}}, `
results: feel much faster, within 100ms,

summary:

The difference between 4 and 5

starting thinking ideas is only a place (the difference between array and object), but the difference between them is very large, this is why? Because the array is a special object... Index array is ordered data sets, but the object is no sequence.