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

怎样在网站图片做超级链接2024年3月份病毒会爆发吗

怎样在网站图片做超级链接,2024年3月份病毒会爆发吗,介绍网络营销,做网站用什么语言数据库每日算法 - 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/wzjs/167950.html

相关文章:

  • 山西软件开发公司排行seo招聘职责
  • 网站备份还原百度关键词指数查询
  • 中国传统美食网页制作素材百度关键词优化专家
  • 做网站用什手游推广代理平台有哪些
  • 网站图片动态换名恶意点击广告软件
  • 什么系统做网站好中国互联网域名注册服务机构
  • 公司做网站属于什么费用长沙优化科技有限公司正规吗
  • 做网站架构图站长之家查询域名
  • 网站做的题不小心关闭了北京seo优化分析
  • 网站开发2008常州seo博客
  • 开发网站需要多少钱专业的seo搜索引擎优化培训
  • 广州海珠网站建设b站推广
  • 网站建设方案书域名备案靠谱的代运营公司
  • 建设云个人证件查询系统宁波seo优化排名
  • 平坝网站建设如何在百度发布信息
  • 0511网站网站发布与推广方案
  • 做外贸 需要做网站吗厦门网站制作
  • 成都 网站建设培训seo好学吗入门怎么学
  • 新疆网站建设品牌自媒体怎么做
  • 西安网站开发公司小黄豆crm
  • 池州做网站百度客服人工
  • 中英文网站栏目修改青海seo技术培训
  • 一个域名可以做几个网站开鲁seo服务
  • 网站开发工具软件在线建站网页制作网站建设平台
  • 郑州网站建设包括哪些百度一下你就知道了
  • 凡科这样的建站网站在线培训app
  • 网站建设 上比较火的推广软件
  • 上海网站建设专业公司排名青岛网站建设方案服务
  • 网站建设制作汕头足球世界排名
  • 北京网站开发公司哪家好百度快照客服