找长方形中的正方形和长方形个数

找正方形:(加法原理)

边长为1:n*m

边长为2:n-1*m-1

边长为3:n-2*m-2

……

最大到min(m,n),遍历求和即可

时间复杂度:O(min(m,n))

找长方形:(乘法原理)

枚举长方形可能的边长:1,2……n/1,2,……m;

边长为n的边上:边长为1的线段n条,边长为2的线段n-1条,边长为3的线段n-2条……

边长为m的边同理。

组成一个长方形只需要从上面两个边长集合中分别挑选出一条,

长方形个数:((a+1)a÷2)×((b+1)b÷2)

或者也可以认为:选边长是从n+1个端点中选择两个端点所以是C(n+1,2)*C(m+1,2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值