前端常见算法
冒泡算法
function bubbleSort(arr) {
var i = 0;
var j = 9;
for (i = 1; i < arr.length; i++) {
for (j = 0; j < arr.length; j++) {
var temp = 0;
if (arr[j] > arr[i]) {
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
return arr;
}翻转字符串
思路一: 反向遍历字符串
function reverseString(str) {
var tmp = "";
for (var i = str.length - 1; i >= 0; i--) tmp += str[i];
return tmp;
}转化成 array 操作
生成指定长度随机字符串
随机生成验证码
数组去重
数组中最大差值
生成斐波那些数列
二分查找法
实现一个函数, 判断输入是不是回文字符串
斐波那契
尾递归调用优化
永远只有一个调用记录, 调用函数产生一个调用记录, 最后一步操作 return 把当前函数的计算结果当做参数传递给了下一个自身调用.
判断是不是回文字符串
不含重复字符串的最长子串的长度
有效的括号
这种方式也可以
删除字符串中的所有相邻重复项
最小栈
整数反转
爬楼梯
可以用动态规划的问题都能用递归 从子问题入手,解决原问题,分两种做法:自顶向下和自底向上 前者对应递归,借助函数调用自己实现,是程序解决问题的方式,它不会记忆解 后者对应 DP,利用迭代将结果存在数组里,从数组 0 位开始顺序往后计算 递归的缺点在于包含重复的子问题,DP 的效率更高
打家劫舍
词典中最长的单词
整数去反
最后更新于
这有帮助吗?