如果不小心网友来到了这里请网友自动飘走,浪费你们时间表示歉意。该系列博客的目的是:想作为自律工具和朋友一起每天刷几道题作为打卡督促的功能,没有什么可参考学习的东西,也不是刷博客量充大佬的目的
题号:80
var removeDuplicates = function (nums) {
if (nums.length < 3) {
return nums.length
}
//从第三个开始
//pre指向的位置就是后面cur找到的一个符合题意要保留下来的数字将要挪动到的位置
//cur是为了找到需要保留的数字的位置(规则是:pre所指的位置倒退2个的位置和cur的位置
//是否相同,相同就不能保留cur的位置的数字,如果保留了挪到pre指向的位置之后就会出现
//连续3个相同的数字,不符合题意,题意需要最多连续2个相同的数字)
let pre = 2, cur = 2
while (cur < nums.length) {
if (nums[cur] != nums[pre - 2]) {
nums[pre] = nums[cur]
pre++
}
cur ++
}
return pre
};
题号:26
//fast找到一个符合题意的数字然后移动到slow的位置,移动之后要保证
//slow位置的数字和slow-1处的位置不同才能符合题意
var removeDuplicates = function (nums) {
if (nums < 2) {
return nums.length
}
let slow = 1, fast = 1
while (fast < nums.length) {
if (nums[fast] != nums[slow - 1]) {
nums[slow] = nums[fast]
slow++
}
fast++
}
return slow
};
题号:1143
var longestCommonSubsequence = function (text1, text2) {
let dptable = new Array(text1.length + 1)
for (let i = 0; i <= text1.length; i++) {
let arr = new Array(text2.length + 1)
dptable[i] = arr
}
for (let i = 0; i < dptable.length; i++) {
for (let j = 0; j < dptable[0].length; j++) {
if (i == 0 || j == 0) {
dptable[i][j] = 0
} else {
//动态转移方程
if (text1[i - 1] == text2[j - 1]) {
dptable[i][j] = dptable[i - 1][j - 1] + 1
} else {
dptable[i][j] = Math.max(dptable[i][j - 1], dptable[i - 1][j])
}
}
}
}
return dptable[text1.length][text2.length]
};