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

【LeetCode】面试题 16.21. 交换和

质量还不错的一道题,适合用于考察二分法。

1. 题目

2. 分析

  • 求出两个数组的总和,我们令总和少的为less,总和多的为more;
  • 如果两个数组的总和是奇数,那么怎么都配不平,直接返回false;
  • 如果两个数组的总和是偶数,那么可能配平。
    • 先找出增量deta,即存在less + deta = more - deta
    • 那么遍历总和小的数组,从中逐个判断数num,看是否在more那个数组中存在 num+deta 这个数,如果存在,即满足结果;如果最后没有找到,那么返回空集。

3. 代码

class Solution:def findSwapValues(self, array1: List[int], array2: List[int]) -> List[int]:# 二分法找出合适的增量 detatotal1 = total2 = 0for i in array1:total1 += ifor i in array2:total2 += iif (total1+total2) %2 == 1:return []# 找到较小值,较大值        deta = abs(total1 - total2)//2array1.sort()array2.sort()if total1 > total2:deta = -1 * deta# print(deta)# 以array1 为base,加减detafor i in range(len(array1)):num1 = array1[i]target = num1 + deta  #判断目标数是否在array2中left = 0right = len(array2)-1while(left <= right):mid = (left+right)//2if array2[mid] < target:left = mid + 1elif array2[mid] >= target:right = mid -1if left!=len(array2) and array2[left] == target:return [num1, target]return []

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)
  • Clean My Mac X破解版,让您的电脑跟新的一样好用
  • 【栈和队列OJ题】
  • 33 IRF配置思路
  • Python爬虫:BeautifulSoup的基本使用方法!
  • Linux磁盘-创建分区
  • MySQL慢查询日志详解与性能优化指南
  • Mybatis-Plus最优化持久层开发
  • 如何在 Odoo 16 中对 Many2Many 字段使用 Group by
  • 昇思大模型——MindFormers的使用----从零开始安装配置环境
  • 8627 数独
  • 深度学习调参基础
  • MySQL DDL
  • 使用Docker制作python项目镜像
  • DP(2) | Java | LeetCode 62, 63, 343, 96 做题总结(96 未完)
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • Angular 4.x 动态创建组件
  • HTML-表单
  • JavaScript 基本功--面试宝典
  • jdbc就是这么简单
  • mysql常用命令汇总
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • orm2 中文文档 3.1 模型属性
  • react 代码优化(一) ——事件处理
  • STAR法则
  • Theano - 导数
  • underscore源码剖析之整体架构
  • 老板让我十分钟上手nx-admin
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 说说动画卡顿的解决方案
  • 通过git安装npm私有模块
  • 网络应用优化——时延与带宽
  • 学习JavaScript数据结构与算法 — 树
  • 硬币翻转问题,区间操作
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 回归生活:清理微信公众号
  • #NOIP 2014#Day.2 T3 解方程
  • #Z0458. 树的中心2
  • (1)(1.11) SiK Radio v2(一)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (LeetCode) T14. Longest Common Prefix
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (二)构建dubbo分布式平台-平台功能导图
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (算法)前K大的和
  • (一)Neo4j下载安装以及初次使用
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net 受管制代码
  • .net 微服务 服务保护 自动重试 Polly
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET周刊【7月第4期 2024-07-28】