面试问有没有offer类似剑指offer的java面试书

数据结构和算法(17)
java实现的编程问题(21)
面试题1:赋值运算符函数
Java中不能重载运算符(C++可以)
String 类的“+”是通过StringBuidler的append追加实现的。
可以重写自定义类的toString()方法,对象相加时会调用toString()的方法。toString()是Object类具有的方法,而所有的类都继承自Object,所以所有的对象都有这个方法。
面试题2:实现Singleton模式
可行的解法1:双检测机制
public class Singleton {
private Singleton() {}
private static Singleton instance=null;
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
推荐解法1:静态内部类
public class Singleton {
private static class SingletonHolder {
private static final Singleton instance = new Singleton();
private Singleton (){}
public static final Singleton getInstance() {
return SingletonHolder.
推荐解法2:在类创建的同时就实例化 singleTon
public class Singleton {
private Singleton() {}
private static final Singleton singleton = new Singleton();
public static Singleton getInstance() {
面试题3:二维数组中的查找
public class test3 {
public boolean find(int[][] matrix,int value){
boolean found=false;
int rows=matrix.
if (matrix!=null) {
int row=0;
int column=matrix[0].length-1;
while (row&rows&&column&=0)
if (matrix[row][column]==value)
found=true;
else if(matrix[row][column]&value)
else if(matrix[row][column]&value)
public static void main(String[] args) {
int[][] a=
{1,2,8,9},
{2,4,9,12},
{4,7,10,13},
{6,8,11,15}
boolean found=new test3().find(a, 7);
System.out.println(found);
面试题4:替换空格
public class test4 {
public String replaceBlank(String s){
int len=0;
char[] original=s.toCharArray();
for (int i = 0; i & original. i++)
if (original[i]==' ')
len=original.length+len*2;
target=new char[len];
for (int i = 0; i & original. i++)
if (original[i]==' ')
target[j]='%';
target[++j]='2';
target[++j]='0';
target[j]=original[i];
return new String(target);
public static void main(String[] args) {
String s="we are happy!";
String v=new test4().replaceBlank(s);
System.out.println(v);
面试题5:从尾到头打印链表
public class test5{
private class Node&T&{
T valueT=null;
Node next=null;
public Node(T valueT) {
this.valueT = valueT;
private Node head=null;
public Node getHeadNode(){
public &T& void insertTail(T value){
Node nextNode=null;
if (head==null) {
head=new Node(value);
while (nextNode.next!=null)
nextNode=nextNode.
nextNode.next=new Node(value);
public void reversePrint(Node head){
if (head!=null)
if (head.next!=null)
reversePrint(head.next);
System.out.println(head.valueT);
public static void main(String[] args) {
int[] a={1,2,3,4,5,6,7};
test5 t=new test5();
for (int i = 0; i & a. i++) {
t.insertTail(a[i]);
t.reversePrint(t.getHeadNode());
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:693次
排名:千里之外
原创:22篇&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!Java程序员,刷《剑指offer》,用C/C++还是Java?
2016硕士准备找工作,刷题时发现大多数书都是C/C++写的,有没有必要再用Java敲一遍?面试时,面试官是让用什么语言写?注:应聘Java开发工程师。
个人愚见,既然是算法和数据结构相关的面试题,关键还是解决的思路和方法,用什么语言实现还是其次,只能证明你的语法熟练程度(运用的好坏)。看面试官想注重哪方面多一点。
如果是面试Java工程师,一般就是要求用Java写,当然会C++应该是加分项。各公司情况不同,不排除遇到意外情况。
我用java刷过来的。关键是看你平时编程主要用什么语言,语言特性不同会导致解法和思路上有不同。比如C++的指针,能在函数传参的时候省好多事。刷剑指offer主要是锻炼你的编程逻辑思维,语言只是帮你实现你解决问题思路的工具。leetcode上面有好多和剑指offer上一样的题目,所以你可以把你的java代码在leetcode上测试,而且还可以看leetcode上的discuss,里面也有很多问题的java解法。
就我个人面试的情况来看,应聘 Java 开发也允许用 C++ 写算法代码,应聘 C++ 还是用 C++ 比较好,有的也允许伪代码。最重要的是思想,语言只是可选的途径,当然代码写出来之后是否有 BUG 也是考察的一个方面。
当然用Java了,如果你Java已经是信手拈来的水准,考虑别的语言实现只会对功力有补益啊。这类似于以前做数学题,在知道一种常规解法并保证得分的情况下多试几种解法不是啥坏事,所谓艺多不压身啊!
算法是重点,语言都是其次。 明明让你自己实现一个copy 函数,你非说,库里已经有了。 纠结这些就没有意义了。关键是思想~ 愚见
1. 既然你要学算法,而且学java,那就要用java敲一遍咯,不管书上的是java还是c/c++2. 你如果能把 c/c++ 翻译成java,那也是极好的。3. 面试的时候,算法的话,一般伪代码也就可以了,用java当然更没问题了,如果应聘java岗位非让你用c/c++ 写的话,那你应该是碰到很极品的了,而且万一你写出来了呢。4. 而且显示2015年3月份。
一百万只猴子,给他们一百万个键盘,其中的一个会写出Java程序,其它的写的都是Perl程序。这个故事告诉我们…………………………………………………………猴子不会C++
一般来说,推荐使用c++。首先BAT笔试基本c++,那时候我不知道一道算法题你用java会怎样!!还有C++有很多很好的特性和数据结构(STL),特别指针和数组,栈和队列等,是算法题必备。还有C++实现算法比较简单,思路比较清晰,就指针操作,不用象java那样考虑用什么对象,还有很长的函数名(我都不记得清),如string还是stringbuilder等。同时通常面试官在看你java实现算法,使用一堆集合类或方法时,感觉有点鄙视的感觉。因为有些算法,如果用java实现只需调用几个函数即可搞定。最后,相关利益,我也是javaer,不喜欢C++的各种。。坚定不移的写java30年。
已有帐号?
无法登录?
社交帐号登录京 东 价:
[定价:¥]
支  持:
搭配赠品:
服务支持:
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
Java程序员面试宝典 第4版+剑指Offer:名企面试官精讲典型编程题(纪念版) 程序员
加载中,请稍候...
商品介绍加载中...
扫一扫,精彩好书免费看
服务承诺:
京东平台卖家销售并发货的商品,由平台卖家提供发票和相应的售后服务。请您放心购买!
注:因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!并且保证与当时市场上同样主流新品一致。若本商城没有及时更新,请大家谅解!
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
浏览了该商品的用户还浏览了
加载中,请稍候...
iframe(src='///ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')

我要回帖

更多关于 剑指offer 的文章

 

随机推荐