摘要: 题目: 用一个整形矩阵matrix表示一个网络,1代表有路,0代表没路,每一个位置只要不越界,都有上下左右4个方向,求从最左上角到最右下角的最短通路值。 例如: 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 通路只有1条,由12个1组成,... 阅读全文
posted @ 2016-02-14 23:22 小魔仙 阅读(1219) 评论(0) 推荐(0) 编辑
摘要: 题目一: 给定一个有序数组arr,调整arr使得这个数组的左半部分没有重复部分且升序,而不用保证右部分是否有序。 例如:arr=[1,2,2,2,3,3,4,5,6,6,7,7,8,8,9,9],调整之后arr=[1,2,3,4,5,6,7,8,9…]。 要求: 时间复杂度O(N),额外空间复杂度O(1) 程序:public static void leftUnique(int[] arr) { ... 阅读全文
posted @ 2016-02-14 22:45 小魔仙 阅读(772) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个整型数组,返回不包含本位置的累乘数组。 例如:arr=[2,3,1,4],返回[12,8,24,6],即除自己外,其他位置的类乘。 要求: 1.时间复杂度为O(N). 2.除需要返回的结果数组之外,额外空间复杂度为O(1). 使用除法: 结果数组记为res,所有数的乘积记为all。如果数组中不含0,则设置res[i]=all/arr[i]。如果数组中有一个0,对唯一的arr[i]=... 阅读全文
posted @ 2016-02-14 20:23 小魔仙 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个N*N的矩阵matrix,在这个矩阵中,只有0和1两种值,返回边框全是1的最大正方形的边长长度。 例如: 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 其中边框全是1的最... 阅读全文
posted @ 2016-02-14 18:55 小魔仙 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 题目: 有N个长度不一的数组,所有的数组都是有序的,请从大到小打印这N个数组整体最大的前K个数。 例如: 输入含有N行元素的二维数组代表N个一维数组。 219,405,538,845,971 148,558 52,99,348,691 再输入整数K=5,则打印: Top 5:971,845,961,558,538。 要求: 1.如果所有数组的元素个数小于K,则从小到大打印所有的数。 2.时间复杂度... 阅读全文
posted @ 2016-02-14 17:24 小魔仙 阅读(1003) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个double类型的数组arr,其中的元素可正、可负、可为0。返回子数组累乘的最大乘积。 思路: 假设以arr[i-1]结尾的数组最小累乘积为min,最大累乘积为max,那么以arr[i]结尾的数组的最大累乘积可能有三种情况。 max*arr[i];如:[3,4,5]算到5时。 min*arr[i];如:[-3,4,-5]算到-5时。 arr[i];如:[0.3,0.4,5]算... 阅读全文
posted @ 2016-02-14 14:46 小魔仙 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 题目: 定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0] arr[mid - 1]) { right = mid - 1; } else if (arr[mid] > arr[mid + 1]) { left = mid + 1; } else { return mid; } } retu... 阅读全文
posted @ 2016-02-14 11:59 小魔仙 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 一、子数组的最大累加和问题 题目: 给定一个数组,返回子数组的最大累加和。 例如:arr=[1,-2,3,5,-2,6,-1],所有子数组中,[3,5,-2,6]可以累加出最大的和12,return 12. 要求: 时间复杂度为O(N),额外空间复杂度为O(1)。 思路: 如果arr中没有正数,产生 阅读全文
posted @ 2016-02-14 10:41 小魔仙 阅读(1183) 评论(0) 推荐(0) 编辑