LeetCode 第 53 场双周赛(二)

简介: LeetCode 第 53 场双周赛(二)

大家好,这里是一起打 Leetcode 竞赛系列文章的第 5 篇。

本周有周赛和双周赛,本文是对上午的双周赛 Biweekly Contest 53 的简单讲解和评论。以下会包括每一题的简单讲解,代码,难度分析,以及一些个人对这题的看法等,希望大家喜欢!

注意 : 题解并不一定都是最优解(代码以 pass 了 LeetCode 的 Oline Judge 为准),文章初衷是给读者们提供一定的想法和问题的解决方案。

前言 : 参加 Contest 的好处

  1. 每周抽点时间去练习和学习新的题目这对于个人的编程能力与问题解决能力都有很大的帮助。
  2. 在规定的时间内解决一定的题目,这和真实的OA (Online Assessment) 或者 Onsite 面试是一样的,可以把它当作一个很好的 Mock 练习机会。
  3. 当你有碰到做不出的题目的时候,你能知道自己的弱项在哪里,然后可以根据这进行加强和练习,比赛是一面给自己的镜子。

对本场比赛的一些看法

本场比赛难度相对比较正常,都是比较常规的题目,第三题稍微有点难度需要一点思考。

1876. 简单的暴力签到题1877. 一道贪心和双指针题目1878. 一道观察型的题目1879. 使用 bit 进行压缩的DP题目


1877 Minimize Maximum Pair Sum in Array

题意:

给一个数组,它有2N个数字。现在把这个数组分成N组,每组两个数字。我们要最小化每组数字的和里最大的数听起来绕口,直接上例子。A = [3,5,2,3] 分成两pair,(3 ,3),(5,2), answer = max(6,7) = 7

思路:

  • 这题我们需要考虑的是如何分配数字
  • 把数组排序,使最大的数字和最小的数字进行匹配,然后在这些 pair 里找出最大的那个就是答案证明
  • 假设我们现在的数组是排好序的,我们现在是要找所有的pair 里sum 最大的那个,并且我们要使其越小越好
  • 我们的想法是把 A[i] 和 A[n-i-1] 进行匹配,我们以第一对 A[0] 和 A[n-1] 作为例子。如果和A[n-1] 匹配的不是A[0] 而是其它的数字 (因为是排好序的关系其它的数字肯定大于A[0]),那么ans 比起原先的 ans >=A[0]+A[n-1] 就变成了 ans >=A[i !=0] + A[n-1],这显然不是一个好的选择

代码:

classSolution {

 publicintminPairSum(int[] A) {

   Arrays.sort(A);

   intl=0, r=A.length-1;

   intres=0;

   while (l<r) {

     intsum=A[l++] +A[r--];

     res=Math.max(res, sum);

   }

   returnres;

 }

}

空间复杂度和时间复杂度:

  • 时间复杂度:O(nlogn),排序
  • 空间复杂度:O(1)
目录
相关文章
|
BI 网络安全 数据安全/隐私保护
无线电HAM:业余无线电入门【无线电操作人员考证】【干货收藏】【网络安全进阶】
无线电HAM:业余无线电入门【无线电操作人员考证】【干货收藏】【网络安全进阶】
1187 0
无线电HAM:业余无线电入门【无线电操作人员考证】【干货收藏】【网络安全进阶】
|
数据采集 XML 存储
Perl语言的特点和数据分析示例
与Python相比,Perl有以下区别: ● Perl更注重灵活性和表达力,Python更注重简洁性和一致性。 ● Perl更适合处理文本和正则表达式,Python更适合处理数据结构和算法。 ● Perl有多种方法可以实现同一个功能,Python有一种最佳实践(The Zen of Python)。 ● Perl使用分号和花括号来结束语句和定义代码块,Python使用缩进来组织代码结构。 下面用Perl写一个爬虫程序,采集https://weibo.com的TOP10热搜
189 0
Perl语言的特点和数据分析示例
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习:Pytorch nn模块函数解读
深度学习:Pytorch nn模块函数解读
215 0
深度学习:Pytorch nn模块函数解读
|
存储 Java 开发工具
SpringBoot整合ELK做日志(超完整)(下)
SpringBoot整合ELK做日志(超完整)(下)
310 0
|
9月前
|
API
【鸿蒙软件开发】ArkTS基础组件之DataPanel(数据面板)、DatePicker(日期选择)
【鸿蒙软件开发】ArkTS基础组件之DataPanel(数据面板)、DatePicker(日期选择)
329 0
|
9月前
|
索引 API Unix
【鸿蒙软件开发】ArkTS基础组件之TextClock(时间显示文本)、TextPicker(滑动选择文本)
【鸿蒙软件开发】ArkTS基础组件之TextClock(时间显示文本)、TextPicker(滑动选择文本)
542 0
【鸿蒙软件开发】ArkTS基础组件之TextClock(时间显示文本)、TextPicker(滑动选择文本)
|
算法 存储
直接插入排序StraightInsertSort
<div style="font-family:微软雅黑; line-height:21px"> <div style="font-size:14px"><br></div> <div style="font-size:14px"><span style="color:rgb(51,51,51); font-size:18px"><span style="background-colo
1695 0
|
机器学习/深度学习 资源调度 算法
经典机器学习系列(八)【支持向量机】(四)
经典机器学习系列(八)【支持向量机】(四)
130 0
|
存储 编译器 开发工具
C语言错题之 7
C语言错题之 7
81 0
|
存储 数据处理 数据库
程序设计之——手把手教你如何从Excel文件中读取学生信息
在当今信息化时代,计算机技术已经深入到各个领域,而程序设计则成为推动信息化建设的关键技术之一。在众多领域中,学生信息管理系统无疑是其中一个重要的应用。本文将从学生信息管理系统的开发入手,探讨开如何高效且保证质量的完成开发。

热门文章

最新文章