剑指Offer-第一章面试细节总结】的更多相关文章

面试细节:行为面试(20%)+技术面试(70%)+应聘者提问(10%) * 行为面试:跳槽者(不要抱怨老板,不要抱怨同事,只为追寻自己的理想而站斗) * 技术面试:1.基础知识点(编程语言,数据结构(50%),算法) 2.代码质量要点(规范性,完整性,鲁棒性(健壮性)) 3.复杂题解题思路(画图,举例,分解复杂的问题) 4.优化效率(时间和空间) 5.综合能力面(学习.沟通能力,知识迁移能力,抽象建模和发散性思维能力) 附加:测试代码:1基本功能测试:2.边界值测试:3性能测试. * 应聘者提问…
剑指offer第二章 1.二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 class Solution { public: bool Find(int target, vector<vector<int> > array) { /*二维数组的行数和列数*/ int rows = array.size(); ].size(); int row; in…
各位程序猿:         <剑指Offer>一书源自该书作者何海涛坚持更新与编写的博客(http://zhedahht.blog.163.com/),该博客收集整理了大量如微软.Google等知名IT企业的经典面试题.<剑指Offer>一书在此基础上选取了50个典型的程序员面试题,从基础知识.代码质量.解题思路.优化效率和综合能力五个方面系统整理了影响面试的5个要点,难度适中,讲解清晰,非常适合程序猿用于准备求职面试. 目前国内外越来越多公司将在线机试的方式引入求职招聘中,或者…
打算写 图解剑指 offer 66 题 的系列文章,不知道大家有没有兴趣…
旋转数组的最小数字 题目:把一个数组最开始的若干元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如:数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转数组.此时的旋转数组是可以划分为两个排序的子数组.最小值为这两个子数组分界线. 思路:写一个函数minArrary(int*arrary int len),返回值为int.定义三个指针left=mid=0(如果数组是将前面的0个元素放到数组的后面,那么旋转数组即是原数组,最小值即为mi…
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置. 分析: 用一个数组统计每个字符出现的次数. 再次扫描数组,如果找到第一个字符次数为1的,那么返回它的位置. 代码: class Solution { public: int FirstNotRepeatingChar(string str) { int strLen = str.length(); ]; memset(times, , )); ; i < strLen…
import java.util.LinkedList; import java.util.Queue; import java.util.Stack; //树中两个节点的最低公共祖先 //第一种情况:只是一颗二叉树,而且还是排序二叉树.思路:从根节点开始找起,如果这两个数一个大于 //根节点,一个小于根节点,那么最低公共子节点就是根节点. //第二种情况:只是一颗普通的树,但是有指向父节点的指针. //那么就变成 了两个链表求第一个公共节点的情况. //第三种情况:只是一个普通的树,而且没有指…
//不用加减乘除四则运算,来做加法 //题目:两个数做加法. //思路:用二进制的位运算的思路.第一步:首先两数相加考虑进位.可以用异或. //第二步:两个数相加只考虑进位,并将最后的结果左移.第三步:将第一二步的结果相加. public class AddN { public int add(int a,int b){ //递归实现 int sum1=a^b; ; ){ return add(sum1,sum2); } /*循环实现 * int sum1,sum2; do{ sum1=a^b;…
import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; //圆圈中最后剩下的数字 //题目:0,1,2,……n-1,将这n个数排列成一个圆圈,从0开始,删除第m个数,最后一个剩下的数字是多少. //思路1:我们首先可以把它当做一个环形链表.然后模拟一个环形链表. /*思路2:根据数字的规律来求: * 分析2:找规律.首先定义最初的n个数字(…
题目:1:输入一个二叉树,求二叉树的深度.从根节点开始最长的路径. 思路:我们可以考虑用递归,求最长的路径实际上就是求根节点的左右子树中较长的一个然后再加上1. 题目2:输入一颗二叉树的根节点,判断该二叉树是不是平衡二叉树.平衡二叉树是这样的数,每一个节点左右子树的深度差不超过1. 思路1:从根节点开始判断,左右子树的节点的深度是否是相差1的.然后递归判断下面的节点. 思路2:采用后序遍历,判断左右子树是否相差不超过1,记住每次左右子树的深度.最后判断根节点是否是平衡的.这样做的好处是避免了重复…