代码随想录算法第二天|209.长度最下的子数组 59.螺旋矩阵|| 58.区间和 44.开发商购买土地。

#哪个编程工具让你的工作效率翻倍?#

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 公司各自的子区域内的土地总价值之差最小。

注意:区块不可再分。

思路:

算出区块总和,每行列的总和,在将各种分发的差计算出来,

代码实现:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值