场景
给定一个整数数组 nums 和一个整数目标值 target请,你在该数组中找出和为目标值 target的那两个整数并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。
示例
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
for(let i = 0 ; i<nums.length;i++){
let child1 = nums[i];
for(let k = i+1 ; k<nums.length;k++){
let child2 = nums[k];
if(child1+child2 === target){
return [i,k]
}
}
}
return []
};
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
var map = {};
for (let i = 0; i < nums.length; i++) {
var child1 = nums[i];
var key = target - child1;
if (map[key] !== undefined) {
return [map[key], i];
}
map[child1] = i;
}
return [];
};
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
示例
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
if(s.length ==0){
return 0
}else{
var array = s.split("")
var num = 0
if(array.length == 1){
return 1
}
for(let i=0;i<array.length;i++){
var map = array[i]
var cn = 1
for(let k=i+1;k<array.length;k++){
var child1 = array[k]
if(!map.includes(child1)){
map = map+child1
cn++
}else{
break;
}
}
num = num > cn?num:cn
}
return num
}
};
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function (s) {
if (s.length == 0) {
return 0;
} else {
var array = s.split("");
var num = 0;
var cn = 0;
var map = "";
for (let i = 0; i < array.length; i++) {
var str = array[i];
if (!map.includes(str)) {
map = map + str;
cn++;
} else {
var index = map.indexOf(str);
map = map.substring(index + 1) + str;
cn = map.length;
}
num = num > cn ? num : cn;
}
return num;
}
};
复制代码