如果不小心网友来到了这里请网友自动飘走,浪费你们时间表示歉意。该系列博客的目的是:想作为自律工具和朋友一起每天刷几道题作为打卡督促的功能,没有什么可参考学习的东西,也不是刷博客量充大佬的目的
题号:191
//移位运算符>>> >>是不对的
var hammingWeight = function (n) {
let count = 0
while (n != 0) {
//每次n与1进行与操作,结果为1说明后面最后1位为1要么为0
count += n & 1
//然后右移1位挤掉最后移位继续判定
n = n >>> 1
}
return count
};
//通过mask去和每一位比较进行与运算来求结果
var hammingWeight = function(n) {
let count = 0
let mask = 1
for (let idx = 0; idx < 32; idx++) {
if ((mask&n)!=0) {
count++
}
mask=mask<<1
}
return count
};
题号:456
var find132pattern = function (nums) {
let leftMin = nums[0]
for (let i = 1; i < nums.length; i++) {
if (leftMin < nums[i]) {
let k = i + 1
while (k < nums.length) {
//去找符合题意的k
if (nums[k] < nums[i] && nums[k] > leftMin) {
return true
}
k++
}
}
leftMin = Math.min(leftMin,nums[i])
}
return false
};
题号:303
//是的,这样做就对不起它这个简单的题目了
//一般应该不会让这么做
var NumArray = function (nums) {
this.nums = nums
};
NumArray.prototype.sumRange = function (left, right) {
let sum = 0
for (let i = left; i < right + 1; i++) {
sum += this.nums[i]
}
return sum
};
var NumArray = function (nums) {
this.nums = nums
this.sums = []
//计算前缀和
for (let i = 0; i < nums.length; i++) {
if (i == 0) {
this.sums[i] = nums[i]
} else {
this.sums[i] = this.sums[i-1] + nums[i]
}
}
};
NumArray.prototype.sumRange = function (left, right) {
if (left == 0) {
return this.sums[right]
} else {
return this.sums[right] - this.sums[left - 1]
}
};