摘要:
2.19 区间重合判断 基本问题:给定一个区间[x,y]和N个无序的目标区间$[x_1,y_1],[x_2,y_2],...,[x_n,y_n]$,判断源区间[x,y]是不是在目标区间内? 解法: 解法1 : 投影法 , 时间复杂度$O(n^2)$ 解法2 : 区间合并法 拓展问题:如何处理二维空间 阅读全文
摘要:
2.13 子数组的最大乘积 ##基本问题:给定一个长度为N的整数数组,只允许用乘法,不允许用除法,计算任意(N-1)个数组的组合乘积中最大的一组,并写出算法的时间复杂度 解法: 解法1:直接暴力 时间复杂度$O(n^2)$,空间复杂度$O(1)$ 解法2:用空间换时间 时间复杂度$O(n)$,空间复 阅读全文
摘要:
2.14 求数组的子数组之和的最大值 基本问题:一个有N个正整数元素的一维数组,这个数组有很多子数组,那么子数组之和的最大值是什呢吗? 解法: 解法 : 动态规划 动态规划 状态定义 : dp[i] 表示包含第i个元素的最大子序和 状态转移方程:dp[i] = max{dp[i-1] + arr[i 阅读全文
摘要:
2.17 数组循环移位 基础问题:设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为$O(n)$,且只允许使用两个附加变量。 解法 解法 1 : 暴力求解 abcd1234 > 4abcd123 > 34abcd12 >234abcd1 > 1234abcd 时间复杂度为$O(n* 阅读全文