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

大连模板网站制作哪家好响应式网站建设的好处

大连模板网站制作哪家好,响应式网站建设的好处,wordpress cdn 不刷新,软件技术服务包括哪些内容每日算法 - 2024年4月28日 记录今天完成的几道 LeetCode 算法题。 1877. 数组中最大数对和的最小值 题目描述: 思路 贪心策略。 解题过程 为了最小化所有数对和中的最大值,直观的想法是避免让两个较大的数相加。因此,最优策略是将数组中最小的元素…

每日算法 - 2024年4月28日

记录今天完成的几道 LeetCode 算法题。


1877. 数组中最大数对和的最小值

题目描述:
题目图片

思路

贪心策略。

解题过程

为了最小化所有数对和中的最大值,直观的想法是避免让两个较大的数相加。因此,最优策略是将数组中最小的元素与最大的元素配对,次小的元素与次大的元素配对,以此类推。这样可以使得每个数对的和相对均衡,从而让其中的最大和尽可能小。

具体步骤如下:

  1. 对数组 nums 进行升序排序。
  2. 使用双指针 leftright 分别指向数组的开头和结尾。
  3. 初始化一个变量 ret 来记录遇到的最大数对和,初始值为 0。
  4. left < right 时,持续循环:
    • 计算当前配对 nums[left] + nums[right] 的和。
    • 更新 ret = Math.max(ret, nums[left] + nums[right])
    • left 指针右移一位 (left++),right 指针左移一位 (right--),考虑下一对元素。
  5. 循环结束后,ret 即为所求的最小的最大数对和。

复杂度

  • 时间复杂度: O ( N log ⁡ N ) O(N \log N) O(NlogN),主要开销在于对数组进行排序。
  • 空间复杂度: O ( 1 ) O(1) O(1) O ( log ⁡ N ) O(\log N) O(logN),取决于排序算法所使用的额外空间(原地排序通常认为是 O ( 1 ) O(1) O(1) 额外空间)。

Code

class Solution {public int minPairSum(int[] nums) {Arrays.sort(nums);int ret = 0;int left = 0, right = nums.length - 1;while (left < right) {ret = Math.max(ret, (nums[left] + nums[right]));left++;right--;}return ret;}
}

881. 救生艇

题目描述:
题目图片

思路

贪心策略。

解题过程

目标是使用最少的船只。每艘船最多载两人,且总重量不超过 limit。为了最大化每艘船的利用率(即尽量让每艘船载两人),我们应该优先考虑最重的人。

具体步骤如下:

  1. people 数组(代表每个人的体重)进行升序排序。
  2. 使用双指针 left 指向体重最轻的人,right 指向体重最重的人。
  3. 初始化船只数量 boats = 0
  4. left <= right 时,持续循环(<= 是为了处理最后只剩一人的情况):
    • 每次循环代表需要派遣一条新船,因此 ret++
    • 让最重的人 (people[right]) 上船。
    • 检查当前最轻的人 (people[left]) 是否能和这位最重的人同乘一条船,即判断 people[left] + people[right] <= limit
    • 如果可以同乘 (people[left] + people[right] <= limit),那么最轻的人也上船,将 left 指针右移一位 (left++)。
    • 无论最轻的人是否能上船,最重的人都已经确定要上这条船了,所以将 right 指针左移一位 (right--)。
  5. 循环结束后,ret 即为所需的最小船只数量。

复杂度

  • 时间复杂度: O ( N log ⁡ N ) O(N \log N) O(NlogN),主要开销在于排序。
  • 空间复杂度: O ( 1 ) O(1) O(1) O ( log ⁡ N ) O(\log N) O(logN),取决于排序算法使用的额外空间。

Code

class Solution {public int numRescueBoats(int[] people, int limit) {Arrays.sort(people);int left = 0, right = people.length - 1;int ret = 0;while (left <= right) {int light = people[left];int weight = people[right];ret++;right--;if (light + weight <= limit) {left++;}}return ret;}
}

2592. 最大化数组的伟大值

题目描述:
题目图片

思路

贪心策略。

解题过程

题目要求找到数组 nums 的一个排列 perm,使得满足 nums[i] < perm[i] 的索引 i 的数量最大化。这个最大数量就是数组的“伟大值”。

一个有效的贪心策略是:

  1. 对原数组 nums 进行升序排序。
  2. 我们希望为尽可能多的 nums[i] 找到一个比它大的 nums[j] 来作为 perm[i]。为了给后面的 nums 元素留下更多(可能更大)的选择,对于当前的 nums[i],我们应该寻找满足 nums[j] > nums[i] 的最小的 nums[j] 来进行配对。
  3. 使用双指针 ij 来实现这个过程:
    • 指针 i:指向当前需要寻找配对的元素 nums[i]
    • 指针 j:指向可用于配对的候选元素 nums[j]
  4. 初始化 i = 0, j = 1,以及伟大值计数 greatness = 0
  5. j 未越界 (j < nums.length) 时,持续循环:
    • 如果 nums[i] < nums[j]: 找到了一个有效的配对。nums[j] 可以作为 nums[i]perm[i]。增加伟大值 greatness++。同时移动两个指针 i++j++,表示 nums[i]nums[j] 都已被使用,接下来考虑 nums[i+1]nums[j+1]
    • 如果 nums[i] >= nums[j]: 说明 nums[j] 不够大,不能与 nums[i] 配对。我们需要一个更大的元素来配对 nums[i]。因此,保持 i 不动,只移动 j 指针 (j++),去寻找下一个可能满足条件的 nums[j]
  6. 循环结束后,greatness 即为最大化的伟大值。

复杂度

  • 时间复杂度: O ( N log ⁡ N ) O(N \log N) O(NlogN),主要开销在于排序。
  • 空间复杂度: O ( 1 ) O(1) O(1) O ( log ⁡ N ) O(\log N) O(logN),取决于排序算法使用的额外空间。

Code

import java.util.Arrays;class Solution {public int maximizeGreatness(int[] nums) {// 1. 对数组排序Arrays.sort(nums);int n = nums.length;int greatness = 0; // 记录伟大值int i = 0; // 指向需要被配对的元素 nums[i]int j = 1; // 指向用于配对的候选元素 nums[j]// 2. 使用双指针寻找配对while (j < n) {if (nums[i] < nums[j]) {// 找到有效配对 (nums[i], nums[j])greatness++;i++; // 移动 i,考虑下一个需要配对的元素j++; // 移动 j,考虑下一个候选元素} else {// nums[j] 不够大,不能配对 nums[i]// 保持 i 不动,移动 j 寻找更大的候选元素j++;}}// 3. 返回结果return greatness;}
}

http://www.dtcms.com/a/492913.html

相关文章:

  • 门户网站建设的书籍wordpress 去掉顶部
  • 陕西省住房和城乡建设网站找别人做网站可以提供源码吗
  • 免费行情软件app网站大全下载有图片硬件定制
  • 汽车网站的建设方向一起做网店货源
  • 做网站怎么写预算怎么样做跨境电商
  • 做动效很好的网站网站建设有哪些软件有哪些方面
  • Day 1 R基础
  • 站长之家怎么用wordpress 论坛 整合
  • 网站建设费怎样摊销网站seo的优化怎么做
  • 广州海珠网站制嘉兴免费网站制作
  • 下载优化大师appseo专业培训技术
  • 青岛网站关键词it外包 源码
  • 做微信图文推送的网站动效网站怎么做
  • 南昌 网站制作广告推广词
  • 网站建设 猴王网络有实力h5海报是怎么做出来的
  • Windows 平台应用程序 QoS 高级策略配置
  • MySQL8.0 自动化脚本安装方案
  • 网站兼容问题百度超级链
  • Media Encoder 2025 Mac Me视频音频编码处理
  • 多通道DCDC降压稳压器技术革新与卫星应用的深度探索
  • 如何制作网站网页网站建设的讲话稿
  • harry louis做受网站cms高端建站
  • 建设局网站wps2016怎么做网站
  • 网站建设在哪里个人网页设计作品纯html
  • 综合练习题
  • 【科研绘图】PGF/TikZ 生成矢量图
  • 招商加盟网站的图应该怎么做WordPress破解分享
  • Linux系统函数stat和lstat详解
  • 中文外贸网站有哪些网站开发类合同
  • 百度SEO网站wordpress的设置网址