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

马鞍山网站建设兼职电子商务网站基础建设

马鞍山网站建设兼职,电子商务网站基础建设,杭州全案推广,wordpress开发的网站有哪些题目: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.yingshimen.cn/news/446/

相关文章:

  • 建设职业注册中心网站合肥学校网站建设
  • 潍坊哪家网站制作公司好做京东电脑端首页链接的网站
  • 如何用ip地址做网站做一个网页的流程目录
  • 温州制作网站做西点网站
  • 网站开发人员是做什么的网站的宣传推广包括
  • 网站建设中 敬请期待.南京做网站哪家最好
  • 珠宝企业的门户网站开发网站建设和网站设计有什么区别
  • 成都网站设计公司 网络服务最受欢迎的网站开发语言市场有率
  • 网站app服务器租用精品课程网站开发环境
  • 企业网站托管dw做网站表格插不到右边
  • 阿里网站seowordpress 加载数据库表格也卖弄
  • 企业网站域名备案流程the 7 wordpress
  • 做设计想接外单去哪个网站好网络营销导向企业网站建设的原则包括
  • 徐州人才网官方网站dedecms导购网站模板
  • 汕头网站建设制作厂家外贸网站的特点
  • 怎么在百度建设一个网站绍兴百度seo公司
  • 怎么选择网站建设网站怎么推广最
  • 怎么样自己制作网站大连建设公司网站
  • 手机怎么做网站卖东西南通营销型网站建设
  • 怎么开发自己的网站wordpress媒体相对路径
  • 仙居住房和城乡建设部网站网站被降权了
  • 天津市企业网站建设公司家装装修风格大全
  • 怎么做情侣网站logo制作app
  • 校园网站的作用万网域名注册备案
  • 做试用的网站惟博df1042可以看多远
  • 网络推广网站首页大图广东省自然资源厅领导分工
  • 网站安全检测中的安全事件监测包含哪些监控指标零基础自学设计
  • flash网站模板下载爱站网长尾关键词
  • 网站建设 有限公司帕绍网站建设
  • 什么网站可以接室内设计做湘潭网站seo磐石网络