牛客网NC46-20.8.7-贪心
程序员文章站
2024-02-12 22:41:46
...
题目链接:NC46
题意、输入、输出:
分析:注意这里火柴不能拼接
思路:计算每一个长度有多少个,优先拼正方形
代码:
import java.util.*;
public class Solution {
/**
*
* @param n int整型 n
* @param Stick int整型一维数组 Stick
* @return long长整型一维数组
*/
static int maxn=(int)1e5+5;
public long[] MaxArea (int n, int[] Stick) {
// write code here
long[] ans=new long[2];
int[] cnt=new int[maxn];
int maxlen=0;
for(int len:Stick){
if(len>maxlen)maxlen=len;
cnt[len]++;
}
for(int i=1;i<=maxlen;i++){
if(cnt[i]>=4){
int t=cnt[i]/4;
ans[1]+=(long)t*i*i;
cnt[i]-=t*4;
}
if(cnt[i]==3)ans[0]+=(long)i*i;
}
return ans;
}
}
上一篇: 牛客网 NC207078 交换 贪心算法
下一篇: 牛客网NC30-20.8.05-树,贪心