209.长度最下的子数组
要求:
给定一个含有 n
个正整数的数组和一个正整数 target
。
找出该数组中满足其总和大于等于 target
的长度最小的子数组。
[numsl, numsl+1, ..., numsr-1, numsr]
,并返回其长度。如果不存在符合条件的子数组,返回 0
思路:
使用快慢指针,找出多个符合条件的子数组,并记录区间大小,输出最小区间。
代码实现:
59.螺旋矩阵||
要求:
给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
思路:
依次输入每圈的顶部,右侧,底部,左侧,若为奇数圈,则单独输入中间的数字。
代码实现:
58.区间和
要求:
给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。
第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间,直至文件结束。
输出每个指定区间内元素的总和。
思路:
用一个数组储存输入元素,用另一个数组储存相应位置的前n项和,来减少运算的次数
代码实现:
44.开发商购买土地
要求·:
在一个城市区域内,被划分成了n * m个连续的区块,每个区块都拥有不同的权值,代表着其土地价值。目前,有两家开发公司,A 公司和 B 公司,希望购买这个城市区域的土地。
现在,需要将这个城市区域的所有区块分配给 A 公司和 B 公司。
然而,由于城市规划的限制,只允许将区域按横向或纵向划分成两个子区域,而且每个子区域都必须包含一个或多个区块。
为了确保公平竞争,你需要找到一种分配方式,使得 A 公司和 B 公司各自的子区域内的土地总价值之差最小。
注意:区块不可再分。
思路:
算出区块总和,每行列的总和,在将各种分发的差计算出来,