①数组去重(leetcode 26)
利用集合去重
var removeDuplicates = function(nums) {
nums1=Array.from(new Set(nums))
for(i=0;i<nums1.length;i++){
nums[i]=nums1[i]
}
nums.splice(nums1.length)
return nums.length
};
利用排序后的结果去重
var removeDuplicates = function(nums) {
stack=[]
for (i=0;i<nums.length-1;i++){
if(nums[i]==nums[i+1]){
stack.push(i+1)
}
}
for (t=stack.length-1;t>=0;t--){
nums.splice(stack[t],1)
}
return nums.length
};
②position的属性,以及如何脱离文档流
static:默认值,出现在正常的流中
fixed:脱离文档流,与与absolute类似,但不会随滚动条滚动
absolute:相对于最近的已定位祖先元素,脱离文档流
relative:相对于自己的初始位置,不脱离文档流
sticky:随滚动条滚动
inherit:继承父元素的position值
脱离文档流:设为浮动float,position设置为absolute或者fixed
③合并两个有序数组(leetcode 88)
var merge = function(nums1, m, nums2, n) {
let p1 = 0, p2 = 0;
const sorted = new Array(m + n).fill(0);
var cur;
while (p1 < m || p2 < n) {
if (p1 === m) {
cur = nums2[p2++];
} else if (p2 === n) {
cur = nums1[p1++];
} else if (nums1[p1] < nums2[p2]) {
cur = nums1[p1++];
} else {
cur = nums2[p2++];
}
sorted[p1 + p2 - 1] = cur;
}
for (let i = 0; i != m + n; ++i) {
nums1[i] = sorted[i];
}
};
④http status
101:切换协议,如升级到websocket长连接
200:ok
301:永久重定向
302:临时重定向
304:未发生更改
400:语法错误
403:拒绝请求
404:未找到资源
406:not accepted
502:bad gateway
⑤求两个字符的最长公共子串(letcode 1143)
var longestCommonSubsequence = function(text1, text2) {
const m = text1.length, n = text2.length;
const dp = new Array(m + 1).fill(0).map(() => new Array(n + 1).fill(0));
for (let i = 1; i <= m; i++) {
const c1 = text1[i - 1];
for (let j = 1; j <= n; j++) {
const c2 = text2[j - 1];
if (c1 === c2) {
dp[i][j] = dp[i - 1][j - 1] + 1;
} else {
dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
}
}
}
return dp[m][n];
};