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

3d建模可以自学吗/无锡网站优化

3d建模可以自学吗,无锡网站优化,网站ui设计软件,口碑好门户网站开发leetcode 870 题目描述:给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。 返回 A 的任意排列,使其相对于 B 的优势最大化。 我的思路:这道题思路蛮好想的,就是每…

leetcode 870

题目描述:给定两个大小相等的数组 A 和 B,A 相对于 B 的优势可以用满足 A[i] > B[i] 的索引 i 的数目来描述。
返回 A 的任意排列,使其相对于 B 的优势最大化。

我的思路:这道题思路蛮好想的,就是每次贪心的找A中最小的大于当前B中元素的元素,听起来有点绕?那给你四个字:田忌赛马……是的,这是同一个问题。但这下就卡在了python的实现上,在C++里我们有lower-bound和upper-bound,但在python里我们没有,所以我们就想到了类似于双指针的解法。写了半天发现自己还是太菜了,于是看了官方题解,结果发现题解的思路是不同的!

题解思路:在我的思路中,我们会自然地把A排序,然后遍历B,对A开一个指针。但是题解告诉我们,我们可以对A、B同时排序。然后怎么处理呢?首先,我们开一个字典,键值为B中元素,值为一个列表。然后我们按位置同时遍历A 和B,也就是使A、B索引值相同,如果A[i]>B[i],当前A[i]就加入B[i]的列表中,否则,就加入一个新的待定列表。最后构造答案时,对于B中的每个元素,列表有元素就输出,没有就从待定列表中拿。

class Solution:def advantageCount(self, A: List[int], B: List[int]) -> List[int]:a = sorted(A)b = sorted(B)ans = {item: [] for item in B}rest = []i = 0for item in a:if item > b[i]:ans[b[i]].append(item)i += 1else:rest.append(item)res = []for item in B:if ans[item]:res.append(ans[item].pop())else:res.append(rest.pop())return res

考虑这样贪心为什么是对的,因为两个列表都经过排序后,如果A[i]>B[i],则A[i]一定是A中大于B[i]的最小值,这个A[i]也就是我们想要的答案。而如果A[i]<=B[i],那A[i]肯定更小于等于B[i]之后的元素,也就是这个A[i]没用了。

最后还有一点,可能有人会好奇为啥字典里的值要是一个列表,直接是一个数不是更简单么?当然不是,因为B中数据是会有重复的!会重复!

http://www.jmfq.cn/news/4976605.html

相关文章:

  • 网站建设放在什么科目/关键词推广
  • 河北地矿建设集团官方网站/山东免费网络推广工具
  • 网站QQ互联教程/什么叫软文推广
  • 竞网做的网站/汕头seo推广外包
  • 从本地服务入手做本地网站/重庆seo网页优化
  • 淘宝做的代码能在其他网站用吗/百度统计代码
  • 国外建设网站流程/天津放心站内优化seo
  • 上海网站关键词排名优化报价/百度指数免费查询
  • 做电影网站收入/免费建站网站大全
  • 网站出售/泸州网站优化推广
  • 网站备案 企业 个人/百度宣传做网站多少钱
  • 开网店0基础教程/企业网站优化服务公司
  • ionic做网站/中国站长之家网站
  • 企业商城网站开发建设/seo公司
  • 网站站长英语/网络整合营销推广
  • 物流公司响应式网站建设/微营销是什么
  • 周村家具行业网站建设/新冠疫情最新消息今天公布
  • 做同款的网站/搜索引擎分析论文
  • wordpress和dreamweaver/自己怎么做网站优化
  • 做图模板下载网站/西安seo服务公司排名
  • vk汉化网站谁做的/网络推广app
  • 网站建设方面的书籍/广州网站快速优化排名
  • 酉阳网站制作/短信营销平台
  • dede网站头部不显示调用的名称/北京网站优化体验
  • 如何做网站建设业务员/免费一键生成个人网站
  • 网站返回按钮设计/我要下载百度
  • 有什么学做木工的网站吗/长沙百度网站推广公司
  • 用asp.net做的网站模板下载/seo营销服务
  • css 制作网站/推广搜索怎么选关键词
  • 打开网站是空白页面/百度账号注册