《剑指offer》笔记(java)

来源:互联网 发布:保险网络推广 编辑:程序博客网 时间:2024/05/18 01:00

推荐一本好书《剑指offer》,很多面试的编程题,而且基础对数据结构在上面都有提到,而且书不厚,可以很快看完,主要看解题的思路,和上面的面试题和基础数据结构,遇到不会的,请立刻上网找博客弄懂,还有代码如果不是c/c++的话,可以自己用自己的语言写一遍实现(或者上网找,很多人都有总结),清明节2天看了三分之一,加油!!
参考代码:http://www.cnblogs.com/hugofly/p/4445437.html
http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/zhangzqit/article/details/49513493
(没发全部粘贴,只能把参考的大牛博客地址给你们(^ω^))
----------我是不弃不离的风格分割线--------------
一、
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
public class Singleton {
private static volatile Singleton INSTANCE = null;
/*就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。*/
private Singleton() {}
public static Singleton getInstance() {
if (INSTANCE == null) {
synchronized (Singleton.class) {
if (INSTANCE == null) {
INSTANCE = new Singleton();
}
}
}
return INSTANCE;
}
}

二、04-替换空格

public class ReplaceBlank {    public String replaceBlank(String input)    {        if(input==null)            return null;        StringBuffer outputBuffer=new StringBuffer();        for(int i=0;i<input.length();i++)        {            if(input.charAt(i)==' ')            {                outputBuffer.append("%");                outputBuffer.append("2");                outputBuffer.append("0");            }            else {                outputBuffer.append(String.valueOf(input.charAt(i)));            }        }        return new String(outputBuffer);    }}

三、快速排序http://blog.csdn.net/morewindows/article/details/6684558 讲的很清楚

//快速排序void quick_sort(int s[], int l, int r){    if (l < r)    {        //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1        int i = l, j = r, x = s[l];        while (i < j)        {            while(i < j && s[j] >= x) // 从右向左找第一个小于x的数                j--;              if(i < j)                 s[i++] = s[j];            while(i < j && s[i] < x) // 从左向右找第一个大于等于x的数                i++;              if(i < j)                 s[j--] = s[i];        }        s[i] = x;        quick_sort(s, l, i - 1); // 递归调用         quick_sort(s, i + 1, r);    }}
0 0
原创粉丝点击