文档章节

5-28

天高地厚宇宙无穷
 天高地厚宇宙无穷
发布于 2016/05/08 22:23
字数 479
阅读 16
收藏 0

1、二维数组中的查找

题目描述

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

算法解析:

思路:首先我们选择从左下角开始搜寻,(为什么不从左上角开始搜寻,左上角向右和向下都是递增,那么对于一个点,对于向右和向下会产生一个岔路;如果我们选择从左下脚开始搜寻的话,如果大于就向右,如果小于就向下)。

public class Solution {

    public boolean Find(int [][] array,int target) {

        int len = array.length-1;

        int i = 0;

        while((len >= 0)&& (i < array[0].length)){

            if(array[len][i] > target){

                len--;

            }else if(array[len][i] < target){

                i++;

            }else{

                return true;

            }

        }

        return false;

    }

}

2、替换空格

题目描述

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

算法解析:

(1)

public class Solution {
    public String replaceSpace(StringBuffer str) {
        return str.toString().replaceAll("\\s", "%20");
    }
}

(2)

public class Solution {
    public String replaceSpace(StringBuffer str) {
        String sti = str.toString();
        char[] strChar = sti.toCharArray();
        StringBuffer stb = new StringBuffer();
        for(int i=0;i<strChar.length;i++){
            if(strChar[i]==' '){
                stb.append("%20");
            }else{
                stb.append(strChar[i]);
            }
        }
        return stb.toString();
    }
}

3、从尾到头打印链表

题目描述

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

算法解析:

(1)

/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
import java.util.ArrayList;
public class Solution {
    ArrayList<Integer> arrayList=new ArrayList<Integer>();
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if(listNode!=null){
            this.printListFromTailToHead(listNode.next);
            arrayList.add(listNode.val);
        }
        return arrayList;
    }
}  

(2)

借助堆栈的“后进先出”实现
/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
import java.util.ArrayList;
import java.util.Stack;
public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        Stack<Integer> stack=new Stack<Integer>();
        while(listNode!=null){
            stack.push(listNode.val);
            listNode=listNode.next;     
        }
        
        ArrayList<Integer> list=new ArrayList<Integer>();
        while(!stack.isEmpty()){
            list.add(stack.pop());
        }
        return list;
    }
}

 

© 著作权归作者所有

共有 人打赏支持
天高地厚宇宙无穷
粉丝 11
博文 178
码字总数 14180
作品 0
贵阳
私信 提问
关于客观现实和虚拟现实的一次有趣的讨论

本讨论来自QQ群 121746359 2011-5-27 23:40:45 7126240(177030400) 生命的意义 对于每个人来说:由于生命的环境和内在的秉赋不同,因此每个人生命的意义和追求完全不同,甚至在各个生命阶段也...

心海岛主
2011/05/30
0
0
超时重新登录提示skip not validate connection.

自己搭建的springmvc+mybatis+shiro,连接池使用的是Druid 隔一段时间没有操作后session超时,退出后重新登录就会卡住,提示如下: 2016-09-28 15:43:21 -7234176 [http-bio-8080-exec-5] DE...

石四兄
2016/09/28
508
0
CNN入门二:通俗理解卷积神经网络

一、CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连的。当输入层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计算速度就会变得很慢...

yongwan5637
05/18
0
0
Fedora 28 计划下周正式发布,将迎来大波更新

由于 Fedora 经常推迟几个星期发布让人诟病,但是作为弥补,他们一直致力于改进发布流程管理和错误处理,现在计划在下周发布 Fedora 28 最终版本。 目前 Fedora 28 Final 的状态是 GO,意味着...

周其
04/29
0
0
Fedora 28 已进入 Final Freeze 阶段,下个月发布正式版

即将发布的 Fedora 28 Linux 发行版目前正处于“最终冻结”(final freeze)阶段,将会在接下来的几周内发布正式版。 Fedora 处于 Final Freeze 状态意味着只有修复了含有标记为 blocker 或 fr...

局长
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
46分钟前
1
0
hadoop垃圾回收站

在生产生,hdfs回收站必须是开启的,一般设置为7天。 fs.trash.interval 为垃圾回收站保留时间,如果为0则禁用回收站功能。 fs.trash.checkpoint.interval 回收站检查点时间,一般设置为小于...

hnairdb
昨天
1
0
腾讯与Github的魔幻会面背后的故事…

10月22日,腾讯开源管理办公室有幸邀请到Github新晋CEO Nat Friedman,前来鹅厂参观交流。目前腾讯已经有近70个项目在Github上开源,共获得17w stars,世界排名11位。Github是腾讯开源的主阵...

腾讯开源
昨天
8
0
单例模式

单例模式(Singleton pattern)属于创建型设计模式。 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对...

NinjaFrog
昨天
2
0
TypeScript基础入门之装饰器(三)

转载 TypeScript基础入门之装饰器(三) 继续上篇文章[TypeScript基础入门之装饰器(二)] 访问器装饰器 Accessor Decorator在访问器声明之前声明。 访问器装饰器应用于访问器的属性描述符,可用...

durban
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部