如果不小心网友来到了这里请网友自动飘走,浪费你们时间表示歉意。该系列博客的目的是:想作为自律工具和朋友一起每天刷几道题作为打卡督促的功能,没有什么可参考学习的东西,也不是刷博客量充大佬的目的
题号:252
var canAttendMeetings = function (intervals) {
//按起始时间进行升序排序
intervals.sort((a, b) => {
return a[0] - b[0]
})
let idx = 1
while (idx < intervals.length) {
//判断是否有交集
if (intervals[idx][0] < intervals[idx - 1][1]) {
return false
}
idx ++
}
return true
};
题号:56
//数组先按starti排序
//然后遍历数组
//比较当前元素的start和上一个元素的end
//start > end 压入一个结果进行下一个
//start <= end 有交集记录此时的交集left
//开始遍历找不相交的right 然后压入结果继续
var merge = function (intervals) {
if (intervals.length < 2) {
return intervals
}
intervals.sort((a,b) => {
return a[0] - b[0]
})
let result = [], idx = 1,preEle = intervals[0]
while (idx < intervals.length) {
if (intervals[idx][0] > preEle[1]) {
result.push(preEle)
preEle = intervals[idx]
} else {
preEle = [preEle[0],Math.max(intervals[idx][1], preEle[1])]
}
idx ++
}
result.push(preEle)
return result
};
题号:190
//每次左移动一位然后再右移动一位比较此时是否相等
//相等说明左移出去的那位为0要么为1
var reverseBits = function (n) {
let result = 0
for (let i = 0; i < 32; i++) {
let val = n << 1 >>> 1 == n ?0:1
if (val == 1) {
result += Math.pow(2,i)
}
n <<= 1
if (n == 0) {
//剪枝一下
break
}
}
return result
};