演算法題記錄

2021-09-20 21:25:52 字數 2030 閱讀 8349

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實體,即 & =>  &​amp;   < => &​lt;  > => &​gt;  " => &​quot;  ' => &​apos; 

//法一

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...