zoukankan      html  css  js  c++  java
  • 《剑指offer》 JavaScript版(1-3题)

    1、二维数组中的查找

    题目描述

      在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    实现思路

      从数组的右上角开始查找,如果右上角的值大于target,则往下走,否则往左走,直至找到值或者返回错误。

    代码

    function Find(target, array)
    {
          let row = array.length,
               col = array[0].length,
               r = row-1,
               c = 0;
          while(r >= 0 && c < col){
              if(target>array[r][c]){    //从右上角开始,如果数值小于目标值,则往下走
                  c++;
              }else if(target<array[r][c]){    //如果数值大于目标值,则往左走。
                  r--;
              }else{
                  return true;  //找到target
              }
           }
        return false;  //没找到target
    }        

    2.替换空格

    题目描述

      请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

    实现思路

      使用正则表达式。

    代码

    function replaceSpace(str)
    {
        return str.replace('/s/g,'20%');
    }

    3.从尾到头打印链表

    题目描述

      输入一个链表,从尾到头打印链表每个节点的值。

    实现思路

      创建一个空数组,如果链表不为空,将链表中的值依次插入数组的头部。array.unshift()方法可以实现头部插入。

    代码

    /*function ListNode(x){
        this.val = x;
        this.next = null;
    }*/
    function printListFromTailToHead(head)
    {
        let list=[];
        while(head){  //如果链表里面不为空
            list.unshift(head.val);  //将链表中值插入list数组的头部
            head=head.next;  //下移指针
        return list;
    }
  • 相关阅读:
    链表逆序输出 ---九度1511
    java 通过ssh连接linux服务器的测试代码
    C/C++时间函数总结
    C,C++,windows api, linux api 操作文件总结
    基于大数据计算思想的分布式数据库
    手机定位的方式
    矩阵取数问题
    回文字符串
    linux shell重定向总结
    apache flink 入门
  • 原文地址:https://www.cnblogs.com/jiaxiaonuo/p/7264223.html
Copyright © 2011-2022 走看看