首页 > 编程知识 正文

微软面试100题及答案(面试算法100 题及答案)

时间:2023-05-06 11:22:31 阅读:68131 作者:4033

我今天预约了微软的面试。 连续三次,一次持续一个小时,从下午2点到下午5点。 虽然感觉自己最后的回答很差,但是还是分享一下面试过程,作为参考吧

第一回合:自我介绍项目介绍

开始问题:合并k个链表

解决问题的想法:两个合并(调查分治方法) ) ) ) )

第二次:自我介绍项目介绍

开始问题。 1 .如何判断平衡树2 .颜色分类(按顺序排列0、1、2 ) )。

问题1解题思路:采用递归方法判断子树是否为平衡树(如果是,返回子树高度; 如果不是返回-1)

问题2解题思路: LeetCode原题,采用双指针

第三:自我介绍项目介绍

出题:1.实现单实例模式2 .在2. String中转动数字。 如果有特殊字符,则返回null,否则返回数字。 (考虑正负情况) ) ) ) ) ) ) ) )。

问题1解题思路:使用静态内置类实现单实例模式(饿汉模式)

来自公共类singleton {//类的静态变量privatestaticsingletoninstance=new singleton (; //初始化自动创建实例,静态和私有避免私有singleton () }//构造函数publicstaticsingletongetinstance ) )//实例方法静态修饰静态)问题2解题思路:需要考虑各种特殊情况,主要考察你对问题的考虑是否周到

是否为空,或是否由空间组成。

是否带有加号和减号,加号可以忽略。 负号必须在返回结果时带上。

必须以0开始,并跳过连续的前置0。 例如,如果为' 000123 ',则转换结果为123。

超出了Integer的最大边界或最小边界。

小数点可以忽略。 因为转换为整数类型,所以小数点以下的数字会被截断。

出现多个正负符号,直接返回0。 例如,“2”,结果为0。

第一位只有数字(0到9 )或正负符号,出现其他字符后直接返回0。

publicintmyatoi3(stringstr ) if ) str==null ) { return 0; } str=str.trim (; if(str.isempty () ) { return 0; (} int index=0,total=0,n=str.length ); int sign=1; //只判断正负//一次,循环if(indexn(str.charat ) index )=''|str.charat(index )=='-' ) ) sign=str.charat 索引; //整数while(indexn ) intnum=str.charat ) index )-'0'; if(num0|||num9) { break; //避免越界if (total integer.max _ value/10|) total==integer.max _ value/10 num integer.max _ value ) ) retue }总=总* 10 num; 索引; }返回总* sign; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。