LeetCode简单算法题目-JS解法

1. 两数之和

var twoSum = function(nums, target) {
    var arr=[];
    for(var i=0;ifor(var j = i+1;jif(nums[j] === target - nums[i]){
                arr.push(i);
                arr.push(j);
                return arr;
            }
        }
    }
};
复制代码

双层循环,从第1个开始外层循环,内层循环从1个以后的数开始,以此类推。

会循环每两个数构成的一对组合。

7. 整数反转

两种方法  

 1.可以用js的数组反转

 2.用%10来从最后一位反转

function judge(arr){
    for(var i = 0;iif(arr[i]==0){
                arr.unshift();
            }else{
                return arr;
            }
        }
}

var reverse = function(x) { 
    console.log(Math.pow(2,31)-1);
    if(x<=(Math.pow(2,31)-1)&&x>=Math.pow(-2,31)){
            x = x.toString();
        if(x>0){
            var arr = x.split("").reverse();
            console.log(arr)
            judge(arr);
            x = arr.join("")*1; 
            if(x<=(Math.pow(2,31)-1)&&x>=Math.pow(-2,31) ){
                               return x;

               }else{
                   return 0;
               }
        }else if(x<0){
            var arr = x.split("").reverse();
            console.log(arr)
            arr.pop();
           judge(arr);
            console.log(arr)
            arr.unshift("-");
            x = arr.join(""); 
           if(x<=(Math.pow(2,31)-1)&&x>=Math.pow(-2,31) ){
                               return x;

               }else{
                   return 0;
               }
        }else if(x==0){
            return 0;
        }
    }else{
        return 0;
    }
};




复制代码

  function reverse1(x){
        var num = 0,sum=0;
        var  len = typeof(x)== "string" ? x.length  : x.toString().length;
        for(var i=0;iif(x<10){
                num = x%10;
                sum = sum+num;
                if((sum*1) < Math.pow(-2,31) || (sum*1) >( Math.pow(2,31)-1)){
                    return 0;
                }else{
                    return sum;
                }
            }
            num = x%10;
            x = Math.floor(x/10);
            sum = (sum+num)*10;
        }
    }
var reverse = function(x) {
    if(x < Math.pow(-2,31) || x >( Math.pow(2,31)-1)){
            return 0;
        }else {
            if(x>0){
                var str=  reverse1(x);
                return str;
            }else if(x===0){
                return 0;
            }else if(x<0){
                var arr = x.toString().split("");
                arr.shift();
                var str = arr.join("");
                var str2 = "-"+reverse1(str);
                return str2;
            }
        }
};
复制代码


9. 回文数

var isPalindrome = function(x) {
    if(x<0){
        return false;
    }else if(x==0){
        return true;
    }else if(x>0){
        x1 = x.toString();
        var arr = x1.split("");
        arr1 = arr.reverse().join("");
        if(x1 == arr1){
            return true;
        }else{
            return false;
        }
    }
};


复制代码

26. 删除排序数组中的重复项

var removeDuplicates = function(nums) {
    if(nums.length ==0){
        return 0;
    }
    var i = 0,k=0;
    for(var j=1;jif(nums[i] !== nums[j]){   
            i++;
            nums[i]=nums[j];
        }
    }
    return i+1;
};
复制代码

27. 移除元素

var removeElement = function(nums, val) {
    var x = 0;
    for(var i=0;iif(nums[i] != val){
            nums[x]=nums[i];
            x++;
        }
    }
    return x;
};
复制代码

35. 搜索插入位置

var searchInsert = function(nums, target) {
    for(var i=0;i<=nums.length;i++){
        if(nums[i]>=target){
            return i;
        }
    }
    
};

复制代码


转载于:https://juejin.im/post/5c0f1260e51d451de968a8ed

你可能感兴趣的:(数据结构与算法,javascript)