问题描述: 给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组: 子数组大小 至少为 2 ,且子数组元素总和为 k 的倍数。如果存在,返回 true ;否则,返回 false 。 如果存在一个整数 n ,令整数 x 符合 x = n * k , ...
分类:
编程语言 时间:
2021-06-07 21:14:41
阅读次数:
0
题目:523.连续的子数组和 难度:中等 题面: 给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组: 子数组大小 至少为 2 ,且 子数组元素总和为 k 的倍数。如果存在,返回 true ;否则,返回 false 。如果存在一个整数 n ,令 ...
分类:
编程语言 时间:
2021-06-04 19:10:42
阅读次数:
0
动态规划——剑指 Offer 42. 连续子数组的最大和 题目: 思路: dp数组的定义:dp[i]是以 nums[i] 结尾的最大子数组和。 base_case:dp[0] = nums[0] 状态转移方程:dp[i]有两种「选择」,要么与前面的相邻子数组连接,形成一个和更大的子数组;要么不与前面 ...
分类:
编程语言 时间:
2021-05-20 17:50:09
阅读次数:
0
因为子数组是连续的,所以判断连续的子数组的和时,我们往往开一个前缀和数组预处理出所有数的前缀和,这样能够降低求子数组的和的时间复杂度。 这题需要单独处理k为0的情况,由于数组所有元素都是非负数,所以当k为0时,如果存在两个相邻的数的值都为0,则返回true,否则返回false。 使用前缀和判断是否存 ...
分类:
编程语言 时间:
2020-11-19 12:34:32
阅读次数:
7
题目描述: 提交: 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
关于子数组和的问题,容易想到前缀和,但是一般前缀和还不足够优化时间复杂度。看到一个大于五个零的数组长度,我就知道这题应该只能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
Maximum Subarray (E) 题目 Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and retur ...
分类:
其他好文 时间:
2020-07-03 09:14:00
阅读次数:
76
406. 和大于S的最小子数组 中文English 给定一个由 n 个正整数组成的数组和一个正整数 s ,请找出该数组中满足其和 ≥ s 的最小长度子数组。如果无解,则返回 -1。 样例 样例 1: 输入: [2,3,1,2,4,3], s = 7 输出: 2 解释: 子数组 [4,3] 是该条件下 ...
分类:
编程语言 时间:
2020-06-25 19:22:18
阅读次数:
61
问题: 给定一个数组,其为循环数组(最后一个元素的下一个元素为第一个元素)。 求连续子数组和的最大值。 Example 1: Input: [1,-2,3,-2] Output: 3 Explanation: Subarray [3] has maximum sum 3 Example 2: Inp ...
分类:
其他好文 时间:
2020-05-23 18:26:27
阅读次数:
54