当前位置: 首页 > news >正文

长沙高端网站建设服务器后台网站更新 网站没显示

长沙高端网站建设服务器,后台网站更新 网站没显示,建设网站找什么问题,住房和城乡建设部建造师网站题目:2561. 重排水果 思路:哈希表贪心,时间复杂度0(nlogn)。 哈希表来记录两个数组中元素的差异情况,如果相差的值不是偶数,那无法相等,返回-1即可。 差值都为偶数,那可以开始交换,…

题目:2561. 重排水果

在这里插入图片描述

思路:哈希表+贪心,时间复杂度0(nlogn)。

哈希表来记录两个数组中元素的差异情况,如果相差的值不是偶数,那无法相等,返回-1即可。
差值都为偶数,那可以开始交换,用数组a、b来记录两个篮子需要交换的水果。理论上是选这两个篮子组合里最小的一半即可,但没有限制水果的交换次数,此时可能会存在最小的一个水果呢,用于做中间商,交换两个数组中的元素,也就是进行两次。细节看注释。

C++版本:

class Solution {
public:long long minCost(vector<int>& basket1, vector<int>& basket2) {// 哈希表来记录两个数组中元素的差异情况unordered_map<int,int> mp;int n=basket1.size();for(int i=0;i<n;i++){mp[basket1[i]]++;mp[basket2[i]]--;}// 数组a、b来记录两个篮子需要交换的水果vector<int> a,b;// 数组a、b里最小的一个水果int mn=INT_MAX;for(auto x:mp){// 相差的值不是偶数,那无法相等if(x.second%2!=0) return -1;mn=min(mn,x.first);if(x.second>0){for(int i=0;i<x.second/2;i++){a.push_back(x.first);}}else{for(int i=0;i<-1*x.second/2;i++){b.push_back(x.first);}}}//升序sort(a.begin(),a.end());//降序sort(b.begin(),b.end(),greater());long long ans=0;for(int i=0;i<a.size();i++){// 可能会存在最小的一个水果,用于做中间商,交换两个数组中的元素,也就是进行两次ans+=min({a[i],b[i],mn*2});}return ans;}
};

JAVA版本:

class Solution {public long minCost(int[] basket1, int[] basket2) {Map<Integer,Integer> mp=new HashMap<>();int n=basket1.length;for(int i=0;i<n;i++){mp.merge(basket1[i],1,Integer::sum);mp.merge(basket2[i],-1,Integer::sum);}int mn=Integer.MAX_VALUE;List<Integer> a=new ArrayList<>();List<Integer> b=new ArrayList<>();for(Map.Entry<Integer,Integer> e :mp.entrySet()){int x=e.getKey(),y=e.getValue();if(y%2!=0) return -1;mn=Math.min(mn,x);if(y>0){for(int i=0;i<y/2;i++){a.add(x);}}else{for(int i=0;i<-1*y/2;i++){b.add(x);}}}Collections.sort(a);b.sort(Collections.reverseOrder());long ans=0;for(int i=0;i<a.size();i++){ans+=Math.min(mn*2,Math.min(a.get(i),b.get(i)));}return ans;}
}

GO版本:

func minCost(basket1 []int, basket2 []int) int64 {mp:=map[int]int{}for i:=range basket1 {mp[basket1[i]]++mp[basket2[i]]--}a,b:=[]int{},[]int{}mn:=math.MaxIntfor x,y:=range mp {if y%2!=0 {return -1}mn=min(mn,x)if y>0 {for i:=0;i<y/2;i++ {a=append(a,x)}}else{for i:=0;i< -1 * y/2;i++ {b=append(b,x)}}}var ans int64 = 0 slices.Sort(a)slices.SortFunc(b,func(i,j int) int {return j-i })for i:=range a {ans+=int64(min(a[i],b[i],mn*2))}return ans
}
http://www.dtcms.com/a/584702.html

相关文章:

  • 网站建设属于什么职位海南人才在线官网
  • 廊坊制作网站模板建站公司昆明seo建站
  • 网站开发语言数据库有几种网站建设管理存在问题
  • 做淘宝保健品药品在哪个网站找素材做淘宝客建网站要多少费用
  • 哪里有做网站技术泉州网站建设策划
  • 网站建设公司 保证完成 电子商务公司
  • 网络营销 网站建设郴州市有几个县
  • 任何判断网站SEO做的好坏官方网站开发合同
  • 便宜旅游机票网站建设济南市住房和城乡建设局官网
  • 做外贸做几个网站合适网络营销和电子商务的区别
  • 在百度怎么免费制作网站门户网站属于新媒体吗
  • seo网站优化多少钱媒体网站网页设计
  • 亳州蒙城网站建设wordpress实现浮动联系
  • 磁县网站建设资深的网站推广
  • 哪个网站可以做验证码兼职没有网站怎么做seo
  • 山西免费网站建设成都上市的网站建设公司
  • 重庆专业微信网站制作有什么做美食的网站
  • 深圳专业医疗网站建设学网站开发推荐书
  • 兼职做视频的网站电子商务网站建设与设计
  • 书店中文网站模板开设公司网站
  • 网站排版类型产品推广策划案
  • 曲阜建设局网站网站建设的建议例子
  • 网站建设协议 模板设计在线接单
  • 建设一个很大的视频网站需要多少钱一分钟看懂seo
  • 宁波网站建设i sp.net公司网页制作培训试题
  • 定制开发网站 推广商城网站建设源码
  • 做国外有那些网站比较好的天津工程建设信息网官网
  • 济南知名网站建设平台公司搜索seo
  • 自己做的美食分享到网站汕头市网站建设公司
  • 网页制作平台是什么宁波seo公司