面试
SuperDali
写写博客,记记生活
展开
-
《剑指offer》Java学习录:字符串(面试题4:替换空格)
文章目录字符串String的重要特性StringBuilder的重要特性StringBuffer和StringBuilder的区别StringBuilder&StringBuffer的扩容逻辑String、StringBuilder、StringBuffer之间的区别面试题 4:替换空格题目分析解:java字符串字符串是若干字符组成的序列,因为使用频率较高在各语言中都做了特殊处理。C...原创 2019-06-13 19:19:12 · 379 阅读 · 0 评论 -
《剑指offer》Java学习录:树(面试题6:重建二叉树)
文章目录树树的定义二叉树二叉树实现(Java/C++)Java实现C++实现二叉树的遍历深度优先搜索(Depth-First Search)前序遍历中序遍历后续遍历广度优先搜索(Breadth-First Search)二叉搜索树新增节点搜索删除面试题 6:重建二叉树题目分析解:Java解:C++树在数据结构中,我们把存在逻辑上的起点和终点的数据结构,成为线性的数据结构。例如链表、栈和队列等都...原创 2019-06-19 00:38:44 · 857 阅读 · 0 评论 -
《剑指offer》Java学习录:栈和队列(面试题7:两个栈实现一个队列)
文章目录栈和队列面试题 7:两个栈实现一个队列题目分析解:Java解:C++栈和队列栈:栈是一个非常常见的数据结构,特点是先机后出,即最先压入(push)栈的元素会第一个被弹出(pop)。在计算机中被广泛使用。例如,操作系统会给每个线程创建一个栈用来存储函数调用时各个函数的参数。通常栈是一个不考虑排序的数据结构,我们需要O(n)O_{(n)}O(n)的时间才能找到栈中的元素,TODO:...原创 2019-06-19 00:42:25 · 214 阅读 · 0 评论 -
《剑指offer》Java学习录:链表(面试题5:从尾到头打印链表)
链表文章目录链表C/C++中的链表Java中的链表面试题 5:从尾到头打印链表题目分析解:C++解:Java和数组不同,链表是一种动态的数据结构,在创建时并不需要知道他的长度。链表的结构很简单,它通过指针(C/C++中)或者引用(Java中)将若干个节点连接成链状结构。在链表中插入一个节点时,我们只需要为新节点分配内存,然后调整指针或引用的指向即可。因为内存是在使用过程中动态分配,不会出现空...原创 2019-06-15 00:11:15 · 229 阅读 · 0 评论 -
《剑指offer》Java学习录:数组(面试题3:二维数组中的查找)
文章目录数组面试题 3:二维数组中的查找题目分析解:C++解:java数组占据了内存中一段连续的内存空间,并顺序存储,因此可以通过数组下标直接访问,时间复杂度为O(1)O_{(1)}O(1),时间效率高。在申明一个数组时,即使不往数组内存数据,也需要给定数组的空间大小。数组的这种存储方式,造成了内存空间的浪费,经常会有空间没有得到有效利用。为了解决数组空间利用率的问题,在各大高级语言中,设...原创 2019-06-12 00:02:15 · 185 阅读 · 0 评论 -
《剑指offer》Java学习录:查找和排序(面试题8:旋转数组)
文章目录查找和排序查找排序面试题8:旋转数组的最小数字题目分析解:Java这样就完了么查找和排序查找查找和排序时程序设计中常用的算法,查找相对简单,大致有顺序查找、二分查找、哈希查找和二叉树查找,其中二分查找是大多数面试官都会考察的内容。这几个查找都各有特点:顺序查找:是最普通的查找方式,虽然常用,但并不推荐。二分查找:用在排序或者部分排序数组中查找一个数字或者统计某个数字出现的次数。...原创 2019-06-27 19:48:02 · 243 阅读 · 0 评论 -
《剑指offer》Java学习录:面试题9:斐波那契数列
面试题 9:斐波那契数列题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:f(n)={0,n=01,n=1f(n−1)+f(n−2),n>1f(n)= \begin{cases} 0, & \text{$n = 0$}\\ 1, & \text{$n = 1$}\\ f(n - 1) ...原创 2019-06-29 18:47:24 · 528 阅读 · 0 评论 -
《剑指offer》Java学习录:面试题 11:数值的整数次方
文章目录面试题 11:数值的整数次方题目分析解:java面试题 11:数值的整数次方题目实现函数 double power(double base, int exponent),求base的 exponent次方。不得使用库函数,同时不需要考虑大数问题。分析因为不用考虑大数问题,所以,这个题看起来很简单。只需要将base累计乘以exponent次就可以了。如果是这样的话,你就掉进陷阱了。...原创 2019-06-29 18:49:06 · 322 阅读 · 0 评论 -
《剑指offer》Java学习录:面试题 12:打印1到最大的n位数
文章目录面试题 12:打印1到最大的n位数题目分析解:java面试题 12:打印1到最大的n位数题目输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。分析如果不作分析,可能直接就会采用:算出n位数的最大值,然后循环输出就完事儿了。但这个题显然不是这么简单,题目中没有给n做任何限定,如果n的值很大,那么不管是double还是long...原创 2019-06-29 18:52:18 · 368 阅读 · 0 评论