给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置样例给出[-3, 1, 2, -3, 4],返回[0, 2]或者[1, 3].思路:这道题最开始我的想法是用两重宣传去查找第一组连续数字和为0的两端,会发现这种情况算法的复杂度是O(n*n);应该是挺复杂的方法...
分类:
编程语言 时间:
2015-11-30 23:58:36
阅读次数:
324
题目连续子数组求和给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的值。(如果两个相同的答案,请返回其中任意一个)样例给定[-3, 1, 3, -3, 4], 返回[1,4].解题法一:直接暴力,时间复杂度O(N2),时间超时public ...
分类:
编程语言 时间:
2015-10-30 21:46:10
阅读次数:
414
题目:最长上升连续子序列给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)样例给定[5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为[5, 4, 2, 1], 返回4....
分类:
其他好文 时间:
2015-10-17 17:34:03
阅读次数:
247
题目:数组剔除元素后的乘积给定一个整数数组A。定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法。样例给出A=[1, 2, 3],返回 B为[6, 3, 2]解题:leftb计算左侧的连乘值,每次增加一个成绩,rig...
分类:
编程语言 时间:
2015-10-16 20:50:48
阅读次数:
251
题目描述: 对于一个无序数组A,请设计一个算法,求出需要排序的最短子数组的长度。 给定一个整数数组A及它的大小n,请返回最短子数组的长度。 测试样例: [1,5,3,4,2,6,7],7 返回:4 1 /* 2 这个题在牛客网上的讲解我感觉是有点问题的, 3 ...
分类:
编程语言 时间:
2015-10-16 13:16:24
阅读次数:
240
[编程题] 二分查找对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。测试样例:[...
分类:
其他好文 时间:
2015-09-21 19:28:29
阅读次数:
128
题目:
给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置。
样例
给出[-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].
解题思路:
依次求数组的前缀和,同时执行如下操作:
假定当前位置是i,查找i之前位置的前缀和,是否存在j位置,使得,j位置的前缀和 等于 i位置的前缀和。
若有,则j 到...
分类:
编程语言 时间:
2015-08-10 18:11:19
阅读次数:
131
给定一个整数数组和一个整数k,找出k个不重叠子数组使得它们的和最大。
每个子数组的数字在数组中的位置应该是连续的。
返回最大的和。
您在真实的面试中是否遇到过这个题?
Yes
样例
给出数组[-1,4,-2,3,-2,3]以及k=2,返回 8
注意
子数组最少包含一个数
挑战
要求时间复杂度为O(n)
标签 Exp...
分类:
编程语言 时间:
2015-08-09 17:09:26
阅读次数:
279
1. 问题描述 给定一个整数数组和一个大小为k的滑动窗口,滑动窗口每次从左到右移动一个数字,返回每次滑动窗口中的最大值。
2. 方法与思路 Method 1:最朴素的解法就是将窗口在数组上进行滑动,每滑动一次求一下窗口的最值。时间复杂度O(nk)O(nk)。
Method 2:还有就是使用平衡二叉树。
I. 取出数组前kk个元素,构建平衡二叉树。
II....
3Sum题目描述:给定一个整数数组,找出其中的三个数之和为0的所有组合(排除相同的组合)。分析:利用TwoSum 中两指针的思路,我们可以先将数组排序。要找到3个数之和为0,我们可以先固定一个数num[i],将i+1和len-1分别作为头指针和尾指针,当num[i]、num[i+1]与num[len...
分类:
其他好文 时间:
2015-07-09 00:30:56
阅读次数:
122