摘要: 问题描述: 输入一个整数n,求1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11,12,1一共出现了5次。思路:(不考虑时间效率的解法,肯定不是面试官期望的) 直观想法:累加1到n中每个整数中1出现的次数。 每个整数中... 阅读全文
posted @ 2016-07-08 17:10 一只猫的爱园 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 问题描述 : 输入一个整数数组,数组里面有正数也有负数。数组中一个或连续几个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)思路1:常规解法,不知道怎么描述了。。代码:boolean invalidInput = false; public int F... 阅读全文
posted @ 2016-07-08 16:32 一只猫的爱园 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入n个整数,找出其中最小的k个数思路1: 先排序,再取前k个 时间复杂度O(nlogn)下面给出快排序的代码(基于下面Partition函数的方法)public void QuickSort(int[] arr, int start, int end){ ... 阅读全文
posted @ 2016-07-08 16:05 一只猫的爱园 阅读(227) 评论(0) 推荐(0) 编辑
摘要: PS:在前几天的面试中,被问到了这个题。然而当时只能用最低效的方法来解。问题描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不... 阅读全文
posted @ 2016-07-08 11:34 一只猫的爱园 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 1.画图 让抽象的东西变得直观生动起来。比如设计二叉树,链表,栈,队列这些数据结构时。2.举例子 同样可以化抽象为直观。能够更清晰的展现思路。从例子归纳出一般做法。3.分解 有时问题本身是比较复杂的,但是它可以分解成几个简单的部分。思路通常是使用分治法,动态规划等方法。 ... 阅读全文
posted @ 2016-07-08 10:02 一只猫的爱园 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 思路: 全排列,固定第一位,剩余的部分继续全排列。代码: ... 阅读全文
posted @ 2016-07-07 21:40 一只猫的爱园 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路: 将树分为三部分:左子树,根结点,右子树。 1.我们要把根结点与左子树的最大结点连接起来 2.要把根结点与右子树的最小结点连接起来。代码:... 阅读全文
posted @ 2016-07-07 20:11 一只猫的爱园 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。思路1: 1.先复制链表节点,并用next链接起来。 2.然后对每一个结点去修改它的随机指针S。遍历链表找到S。 时间复杂度O(n^2)思路2: 1.... 阅读全文
posted @ 2016-07-07 17:44 一只猫的爱园 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入一棵二叉树和一个整数,打印出二叉树中结点指的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。二叉树结点的定义如下:public class TreeNode { int val = 0; TreeNode left =... 阅读全文
posted @ 2016-07-07 17:10 一只猫的爱园 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 问题描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。思路: 1.首先后序遍历的结果是[(左子树的后序)(右子树的后序)根结点],那么我们首先找到了根结点的值, 2.其次... 阅读全文
posted @ 2016-07-07 15:49 一只猫的爱园 阅读(510) 评论(0) 推荐(0) 编辑