![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
IT_model
我认真做人努力工作,为的就是有一天当站在我爱的人身边,不管她富甲一方还是一无所有,我都可以张开手坦然拥抱她。她富有我不用觉得自己高攀,她贫穷我们也不至于落魄。
不经历痛苦,就无法被救赎。
展开
-
《剑指offer》【面试题3:二维数组中的查找】
面试题3:二维数组中的查找数组基础点:一种基本的数据结构,用于在一块连续的内存中并按照顺序存储数据。创建数组时,先指定数组的大小,然后根据数组的大小进行分配内存。即使在数组中只存储一个数字,也要为整个数组分配内存大小。所以数组的空间利用率不是很好,经常会有空闲的区域没有很好的利用而浪费掉。但是数组的内存连续也有它的优点:可以根据下标在O(1)时间读、写任何元素,所以对于访问数组中的元素的效率还是很...原创 2018-03-24 14:19:45 · 11341 阅读 · 0 评论 -
《剑指offer》【面试题4:替换空格】
面试题4:替换空格字符串:一种基本的数据结构,是由若干字符组成的序列。注意的是每个字符串都以"\0"作为结尾,这样当我们在使用字符串的时候,也可以作为一个字符串的结尾标志。但是也是因为"\0"这个字符使得稍不留心就会造成字符串的越界,这也算是字符串的一个考点,或者认为是和数组的比较吧。存储:把常量字符串放到单独的一个内存区域,当几个指针赋值给相同的常量字符串的时候,实际上这几个指针指向的是一块相同...原创 2018-03-24 14:27:36 · 1851 阅读 · 0 评论 -
《剑指offer》【面试题5:从尾到头打印链表】
面试题五:从尾到头打印链表链表是一种频繁被提及的数据结构,它是通过指针把若干个结点连接成链状的一种数据结构。由于链表的操作是通过指针来实现的,所以在这里指针的正常使用也是面试官所容易提及的一个考点。题目: 输入一个链表的头结点,从尾到头反过来打印出每个节点的值;分析:当遇见这种题的时候,瞬间感觉自己对于链表的所有认识全部给抛了出来,什么双向链表,循环链表了等等,但是额外的想这些只会为你的大脑提供...原创 2018-03-24 16:32:26 · 845 阅读 · 0 评论 -
《剑指offer》【面试题七:用两个栈实现队列】
面试题七:用两个栈实现队列题目: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail, deleteHead,分别完成在队列尾部插入结点和在队列头部插入结点删除结点的功能;分析:栈的特性---“先进后出”,队列的特性---“先进先出”,所以这道题的入口点就是这两个数据结构的特性。 我们可以这样,先创建两个栈stack1和stack2,当有数据来的时候,我们都放...原创 2018-03-24 16:46:40 · 1655 阅读 · 0 评论 -
《剑指offer》【面试题八:旋转数组的最小数字】
面试题八:旋转数组的最小数字算法的考察也是面试的一大重点,所以对于二分查找、归并查找、快速排序这几个经常考的,也是要记得滚瓜烂熟。在写代码的时候,有很多算法都会用到循环和递归这两种不同的方法实现,通常递归的实现方式是比较简单,代码比较简洁,但是它的缺点就是在效率方面不如用循环来实现代码。所以在面试官没有具体的要求的时候,我们可以用递归,但是如果对代码的整体的效率方面进行考虑的话,尽量不要使用递归。...原创 2018-03-24 16:53:18 · 6695 阅读 · 0 评论 -
《剑指offer》【面试题九:斐波那契数列】
面试题九:斐波那契数列对于需要进行多次重复计算的问题的时候,我们会遇到循环,或者递归。递归是在一个函数的内部调用这个函数本身。而循环则是通过设置计算的初始值及终止条件,在一个范围内重复运算。递归虽然比较简洁,但是由于递归是函数调用自身,而函数调用是有时间和空间消耗的;每一次函数调用,都需要在内存栈中分配空间以保存参数,返回地址及临时变量,而且往栈里压入数据和弹出数据都需要时间;除了效率之外,递归还...原创 2018-03-24 16:56:01 · 1080 阅读 · 0 评论 -
《剑指offer》【面试题10:二进制中1的个数】
面试题10:二进制中1的个数我们在日常生活中用到的是十进制,所以一开始接受其他进制都感觉很不习惯;在程序员圈子里有一个流传了很久的笑话,说世界上一共有10种人,一种人知道二进制,而另一种人不知道二进制……说起二进制,就要提到与之形影不离的位运算了,位运算总共有五种运算:与、或、异或、左移和右移。下图是与、或、异或的运算规律:左移运算符m<<n表示把m左移n位。左移n位的时候,最左边的n...原创 2018-03-24 17:03:54 · 9319 阅读 · 0 评论 -
《剑指offer》【面试题11:数值的整数次方】
面试题11:数值的整数次方我们一般从程序的正确性和鲁棒性来检验代码的质量,会关注对输入参数的检查、处理错误和异常的方式、命名方式等。代码的规范性:【清晰的书写、清晰的布局、合理的命名】=【规范的代码】代码的测试:【功能测试、边界测试、负面测试】=》 【完整的代码】代码3种错误的处理方法:1.函数用返回值来告知调用者是否出错;2.当发生一个错误时用一个全局变量进行标记3.异常处理,函数出现错误,就抛...原创 2018-03-24 17:40:25 · 874 阅读 · 0 评论