leetcode Day68 剑指15-18

95 阅读1分钟

1460. 通过翻转子数组使两个数组相等

var canBeEqual = function(target, arr) {
    target.sort((a,b)=>a-b)
    arr.sort((a,b)=>a-b)
    for(let i=0;i<arr.length;i++){
        if(target[i]!==arr[i]){
            return false
        }
    }
    return true
};

剑指 Offer 15. 二进制中1的个数

var hammingWeight = function(n) {
    let s=n.toString(2)
    let res=0
    for(let i of s){
        if(i==='1'){
            res++
        }
    }
    return res
};

剑指 Offer 16. 数值的整数次方

var myPow = function(x, n) {
    if(x===1)return 1
    if(x===-1){
        if(n%2===0)return 1
        else{return -1}
    }
    if(n===0)return 1
    if(n<0){
        x=1/x
        n=-n
    }
    let res=x
    for(let i=0;i<n-1;i++){
        res*=x
    }
    return res
};

剑指 Offer 17. 打印从1到最大的n位数

var printNumbers = function(n) {
    let res=[]
    for(let i=1;i<Math.pow(10,n);i++){
        res.push(i)
    }
    return res
};

剑指 Offer 18. 删除链表的节点

var deleteNode = function(head, val) {
    let node=head
    if(head.val===val){
        head=head.next
    }
    while(node.next){
        if(node.next.val===val){
            node.next=node.next.next
            break
        }
        node=node.next
    }
    return head
};