码迷,mamicode.com
首页 > 编程语言 > 详细

<剑指offer>采用javascript代码来编程(1-66)

时间:2017-09-06 18:19:36      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:tree   write   重建二叉树   cci   编程   小数   text   head   logs   

采用的是牛客网上的判题系统javascript(V8 6.0.0)

1.二维数组的查找

function Find(target, array)
{
    // write code here
     var row = array.length;  // 行数
    var col = array[0].length;  // 列数
    
    // 从右上角开始比较
    var r = 0;
    var c = col-1;
   
    while(r <=row-1 && c >= 0) { // 注意这里有等于号
        if (target > array[r][c]) {
            r++;
        }
        else if (target < array[r][c]) {
            c--;
        }
        else {
            return true;
        }
    }
    return false;
}

 

2.替换空格

function replaceSpace(str)
{
    // write code here
   return str.replace(/\s+?/g,‘%20‘)
}

 

3.从尾到头打印链表

function printListFromTailToHead(head)
{
    // write code here
    var res = [];
    while(head!=null){
        res.push(head.val);
        head = head.next;
    }
    return res.reverse();
}

 

4.重建二叉树

function reConstructBinaryTree(pre, vin)
{
    // write code here
   if (!pre || pre.length === 0) {
        return;
    }
    
    var treeNode = {
        val: pre[0]
    }
    for(var i = 0; i < pre.length; i++) {
        if (vin[i] === pre[0]) {
            treeNode.left = reConstructBinaryTree(pre.slice(1, i+1), vin.slice(0, i));
            treeNode.right = reConstructBinaryTree(pre.slice(i+1),vin.slice(i+1));
        }
    }
    return treeNode;
}

 

5.用两个栈实现队列

var result=[];
function push(node)
{
    // write code here
    result.push(node)

}
function pop()
{
    // write code here
    return result.shift()
}

 

6.旋转数组的最小数字

function minNumberInRotateArray(rotateArray)
{
    // write code here
    rotateArray.sort(function(a,b){
        if(a<b){
            return -1;
        }
        else
            return 1;
        
    })
    return rotateArray[0];
}

 

7.斐波那契数列(循环方法)

function Fibonacci(n)
{
    // write code here
    if(n==0||n==1){
        return n;
    }
    var f1 = 0;
    var f2 = 1;
    for(var i =2;i<=n;i++){
        var tmp = f1 + f2;
        f1 = f2;
        f2 = tmp;
    }
    return tmp;
}

 

8.跳台阶

function jumpFloor(number)
{
    // write code here
    if(number==1){
        return 1;
    }
    if(number==2){
        return 2;
    }
    var f1 = 1;
    var f2 = 2;
    for(var i=2;i<number;i++){
        var tmp = f1+ f2;
        f1 = f2;
        f2 = tmp;
    }
    return f2;
}

 

9.变态跳台阶

function jumpFloorII(number)
{
    // write code here
    if(number==1){
        return 1;
    }
    if(number==2){
        return 2;
    }
    else
        return 2*jumpFloorII(number-1);
}

 

10.矩形覆盖

function rectCover(number)
{
    // write code here
    if(number<=0){
        return 0;
    }
    if(number==1||number==2){
        return number;
    }
       
    var f1 = 0;
    var f2 = 1;
    for(var i=1;i<=number;i++){
        var tmp = f1 + f2;
        f1 = f2;
        f2 = tmp;
    }
    return f2;
}

 

11.二进制中1的个数

 

function NumberOf1(n)
{
    // write code here
    var count = 0;
    while(n!=0){
        n = n&(n-1);
        count++
    }
    return count;
}

 

 

12.数值的整数次方

function Power(base, exponent)
{
    // write code here
    if(exponent==0){
        return 1;
    }
    var result = 1;
    if(exponent>0){
        for(var i=1;i<=exponent;i++){
            result *= base;
        }
        return result;
    }
    if(exponent<0){
        exponent = Math.abs(exponent);
         for(var i=1;i<=exponent;i++){
            result *= base;
        }
        result = 1/result;
        return result;
    }
}

 

13.调整数组元素顺序使奇数位于偶数之前

function reOrderArray(array)
{
    // write code here
    var result1 = [];
    var result2 = [];
    for(var i=0;i<array.length;i++){
        if(array[i]%2==0){
            result1.push(array[i]);
        }
        else{
            result2.push(array[i]);
        } 
    }
    return result2.concat(result1);
}

 

 

<剑指offer>采用javascript代码来编程(1-66)

标签:tree   write   重建二叉树   cci   编程   小数   text   head   logs   

原文地址:http://www.cnblogs.com/xulei-web/p/7441105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!