如果不小心网友来到了这里请网友自动飘走,浪费你们时间表示歉意。该系列博客的目的是:想作为自律工具和朋友一起每天刷几道题作为打卡督促的功能,没有什么可参考学习的东西,也不是刷博客量充大佬的目的
题号:27
var removeElement = function (nums, val) {
//fast去找和val不等的值,slow指向空位置
let slow = 0, fast = 0
while (fast < nums.length) {
if (nums[fast] != val) {
nums[slow] = nums[fast]
slow++
fast++
} else {
fast++
}
}
return slow
};
题号:141
var hasCycle = function (head) {
if (head == null) {
return false
}
//快慢指针,count记录相遇的次数,刚开始处于同一起跑点count
let slow = head, fast = head, count = 1
while (fast && fast.next) {
if (slow === fast && count != 1) {
return true
}
fast = fast.next.next
slow = slow.next
count++
}
return false
};
题号:142
var detectCycle = function (head) {
//同一起跑线开始
let slow = head, fast = head, count = 0
while (fast && fast.next) {
if (fast === slow) {
count++
//相遇
if (count == 1) {
//起点相遇继续走
fast = fast.next.next
slow = slow.next
} else {
//非起点相遇,说明有环
let result = head
//开始找入环节点
while (true) {
if (result === slow) {
return result
} else {
result = result.next
slow = slow.next
}
}
}
} else {
fast = fast.next.next
slow = slow.next
}
}
return null
};