package shuangzhizhen; /* 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4, ...
分类:
编程语言 时间:
2020-07-12 19:12:25
阅读次数:
71
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2 ...
分类:
编程语言 时间:
2020-07-12 14:34:54
阅读次数:
57
题目描述: 提交: class Solution: def rangeSum(self, nums: List[int], n: int, left: int, right: int) -> int: l = [] for i in range(n): for j in range(i+1,n+1) ...
分类:
编程语言 时间:
2020-07-12 12:02:41
阅读次数:
52
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 算法思路: 将数组分成子数组,使左右数组均有序、如果左数组中一元素大于右数组某一元素,说明左数组其余元素都大于右数组的当前元素,此时产生左数组剩下元素数量的逆序对。 当左数组 ...
分类:
编程语言 时间:
2020-07-10 16:51:44
阅读次数:
70
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 : 数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000 ...
分类:
编程语言 时间:
2020-07-09 19:31:40
阅读次数:
66
#长度最小的连续子数组 ##问题描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 示例: 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 ...
分类:
编程语言 时间:
2020-07-08 22:39:37
阅读次数:
49
题目描述: 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到的子数组应是最短的,请输出它的长度。 示例 1: 输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升 ...
分类:
编程语言 时间:
2020-07-07 13:29:30
阅读次数:
59
关于子数组和的问题,容易想到前缀和,但是一般前缀和还不足够优化时间复杂度。看到一个大于五个零的数组长度,我就知道这题应该只能O(n)了。然后首先想到双指针,指了半天发现中间有负数也就是左端点可能不行,但是左端点往右可能又行了,这种情况又不会处理了。这时候我想到了一种叫单调栈的东西,感觉这东西应该是能 ...
分类:
其他好文 时间:
2020-07-07 00:26:08
阅读次数:
66
(一)一维最大连续子数组和 源码: #include<iostream> #include<cstdio> using namespace std; const int N=100000; int main() { int i,j,k; int a[N]; int sum[N]; int n; pr ...
分类:
编程语言 时间:
2020-07-05 10:48:12
阅读次数:
68
1、题目要求: a、输入一个整数数组,数组里有正数也有负数。 b、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 c、求所有子数组的和的最大值。 2、思路构想: 求数组中的一个元素(a)和上一个元素(b)的和(c),将 a 和 c 进行比较,若 c > a ,则用 c 代替 a 的 ...
分类:
编程语言 时间:
2020-07-05 10:37:29
阅读次数:
51