2018年8月20日

面试题:链表倒数第k个节点

摘要: 题目描述:输入一个链表,输出该链表中倒数第k个结点。 方法1:遍历两次链表 方法2:遍历一次链表(第一个指针提前走k-1步) 阅读全文

posted @ 2018-08-20 21:33 Aaron12 阅读(89) 评论(0) 推荐(0) 编辑

面试题:重建二叉树

摘要: 题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 使用递归的方法 阅读全文

posted @ 2018-08-20 20:21 Aaron12 阅读(80) 评论(0) 推荐(0) 编辑

面试题:从尾到头打印链表

摘要: 题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 方法1:典型思路就是利用栈的后进先出 方法2:利用递归 方法3:利用ArrayList的add 阅读全文

posted @ 2018-08-20 18:03 Aaron12 阅读(83) 评论(0) 推荐(0) 编辑

面试题:第一个出现的字符位置

摘要: 题目描述:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 方法1:哈希表 阅读全文

posted @ 2018-08-20 16:39 Aaron12 阅读(126) 评论(0) 推荐(0) 编辑

面试题:调整数组顺序

摘要: 题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。(相对有序) 方法1:两次遍历填充 方法2:借鉴插入排序 方法3:借鉴快速排序 方法4:借鉴冒泡排序 类似题目:数组正负值 阅读全文

posted @ 2018-08-20 11:35 Aaron12 阅读(158) 评论(0) 推荐(0) 编辑

面试题:有限制条件的求和

摘要: 题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 方法:短路定理 用另外一种方式实现递归 阅读全文

posted @ 2018-08-20 09:52 Aaron12 阅读(181) 评论(0) 推荐(0) 编辑

面试题:Fibonacci数列

摘要: 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 方法1:递归 方法2:循环 递归是函数调用函数自身,循环是通过初始值和终止条件在一个范围内重复计算 基于递归实现的函数代码简单,但性能不如基于循环的方法,如果没有别的要求优先使用递归 递 阅读全文

posted @ 2018-08-20 09:23 Aaron12 阅读(119) 评论(0) 推荐(0) 编辑

导航