1.給定乙個整數陣列nums
和乙個目標值target
,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
//法一 時間複雜度o(n^2) 空間複雜度o(n)
var twosum = function(nums, target)
}throw new illegalargumentexception("no two sum solution");
};//法二 最簡單直接的 兩層for迴圈 時間複雜度o(n),空間複雜度o(1)
var twosum = function(nums, target)
}return maxword
}//法二
function findlongestwords(str) else
}//法三 該方法只能返回最大長度 無法找出是哪個詞
function findlongestwords(str) , 0);
}
3.判斷乙個字串 是不是以另乙個 字串結尾
function confirmending(str, target)
function confirmending(str, target)
4.乙個函式接受至少2個陣列引數,返回去重後的陣列,並保留原來的順序,陣列可以是多維但只拉平一層。如:uniteunique([1, 3, 2], [1, [5]], [2, [4]])返回
[1, 3, 2, [5], [4]]
function uniteunique(...args) ))
})//法三
let flatarr = .concat(...args);
let result = [...new set(flatarr)];
return result;
}
5.把字串中所有的&
,<
,>
,"
(雙引號), 和'
(單引號) 轉化成對應html實體,即 & => & < => < > => > " => " ' => '
//法一
function converthtml(str)
}temp = temp.join('');
return temp;
}//法二
function converthtml(str) ;
let newstr = str.replace(reg, function (val) )
}//法三
function converthtml(str) ;
return str.split('').map(entity => htmlentities[entity] || entity).join('');
}
6.判斷字串是否是回文字串(正方向和反方向值比較都是一樣的),需要去除字串中的非字母和數字字元並忽略大小寫。
//法一 通過運用陣列reverse方法
function palindrome(str)
//法二 通過兩個index 乙個自增 乙個自減 比較字串在兩個index處是否相等 不想等返回false
function palindrome(str) else
} return true
}//法三
function palindrome(str)
}return true;
}
7.大數相加
function add(a ,b)
if(f == 1)
return sum;
}
演算法題記錄2
小q最近遇到了乙個難題 把乙個字串的大寫字母放到字串的後面,各個字元的相對位置不變,且不能申請額外的空間。你能幫幫小q嗎?輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出移位後的字串。輸入例子 aklebiceild 輸出例子 kle...
freeCodeCamp演算法基礎題記錄
1.翻轉字串 function fun str 2.返回一給定整數的階乘 function factorial num return res 3.返回給定句子中最長單詞的長度 function fun str arr.foreach item console.log res return math....
LeetCode初級演算法刷題記錄
1 刪除排序陣列中的重複項。給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成。class solution int i 0 for int j 1 j n...