华为OD刷题C卷 - 每日刷题 5

1、(最接近的三数之和):

这段代码是解决“最接近的三数之和”问题。它提供了一个Java类Solution,其中包含一个方法threeSumClosest,该方法接收一个整数数组nums和一个目标整数target。任务是找到一个由三个数组元素组成的和,这个和要尽可能接近target

代码首先对数组进行排序,然后初始化一个变量diff来记录当前最接近target的三数之和的差值,以及一个变量ans来保存最接近的三数之和。

接着,代码使用三重循环来尝试找到最接近target的三数之和。对于数组中的每个元素nums[i],代码尝试在i+1n-1之间找到两个元素,使得这三个元素的和尽可能接近target。如果找到的三数之和与target的差值小于当前记录的diff,则更新diffans

最后,返回变量ans作为最接近target的三数之和。

2、(三数之和):

这段代码是解决“三数之和”问题。它提供了一个Java类Solution,其中包含一个方法threeSum,该方法接收一个整数数组nums。任务是找出数组中所有唯一的三元组,使得这些三元组的和为0。

代码首先对数组进行排序,然后初始化一个ArrayList来保存结果。

接着,代码使用三重循环来找到所有和为0的三元组。对于数组中的每个元素nums[i],代码尝试在i+1len-1之间找到两个元素,使得这三个元素的和为0。如果找到,则将这个三元组添加到结果列表中,并更新左右指针leftright来跳过重复的元素。

最后,返回包含所有和为0的三元组的列表。

package Code16;import java.util.Arrays;
import java.util.Scanner;/*** @description 最接近的三数之和* @level 中等* @url <a href="https://leetcode.cn/problems/3sum-closest/description/">url</a>*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);}
}class Solution {/*** 返回最接近target的三数之和** @param nums* @param target* @return int*/public int threeSumClosest(int[] nums, int target) {Arrays.sort(nums);//3 <= nums.length <= 1000int n = nums.length;//三数之和与target的差值int diff = Integer.MAX_VALUE;//结果,最接近的三数和int ans = 0;//第一个数for (int i = 0; i < n; i++) {//去重if (i > 0 && nums[i] == nums[i - 1]) continue;//左右边界int left = i + 1;int right = n - 1;//当i=n-2时,left=rightwhile (left < right) {//此时的三数之和int sum = nums[i] + nums[left] + nums[right];//与target差值int curDiff = Math.abs(sum - target);//如果差值为0,则一定是这组数if (curDiff == 0) return sum;//如果差值更小,则更新if (curDiff < diff) {diff = curDiff;ans = sum;}//如果sum在target左边,想接近target只能移动leftif (sum < target) left++;else if (sum > target) right--;}}return ans;}
}
package Code15;import java.util.*;/*** @description 三数之和* @level 中等* @score* @url <a href="https://leetcode.cn/problems/3sum/description/">...</a>*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);}
}class Solution {public List<List<Integer>> threeSum(int[] nums) {//保留结果List<List<Integer>> ans = new ArrayList<>();int len = nums.length;//异常情况if (nums == null || len < 3) return ans;//先升序排列,方便去重Arrays.sort(nums);for (int i = 0; i < len; i++) {//nums升序排列的,如果第一位大于0,后面三数之和一定大于0,结束循环if (nums[i] > 0) break;//如果跟上一位一样,则去重 继续下一位if (i > 0 && nums[i] == nums[i - 1]) continue;//左边界int left = i + 1;//右边届int right = len - 1;//要找到num[i]能组合的所有nums[left]和nums[right]while (left < right) {int sum = nums[i] + nums[left] + nums[right];if (sum == 0) {//添加当前组合ans.add(Arrays.asList(nums[i], nums[left], nums[right]));//去重,左右边界都移动到下一个不相同的位置while (left < right && nums[left] == nums[left + 1]) left++;while (left < right && nums[right] == nums[right - 1]) right--;//缩小边界left++;right--;} else if (sum < 0) {left++;} else if (sum > 0) {right--;}}}return ans;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python系列】Python的多返回值

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

C51学习归纳1 --- led点亮、led闪烁、led流水灯

第一节主要是针对LED的控制学习。这个过程中我们需要掌握的&#xff1a;1、控制的实现方法&#xff0c;控制实现的方法在后续的学习中是通用的。2、如何知道谁控制谁&#xff0c;通过查找开发板原理图获取&#xff0c;原理图的阅读的能力&#xff0c;在日后也是非常常用的。 一…

关于 c++ cout << endl; 的源码解释

这行语句非常常用。以前在王老师课上&#xff0c;老师提到过 endl 是一个函数模板。现给出这行语句的相关源码&#xff1a; 反汇编的依据如下&#xff1a; 接着是 谢谢

(2)svelte 教程:点击操作,输入框和数据绑定

&#xff08;2&#xff09;svelte 教程&#xff1a;点击操作&#xff0c;输入框和数据绑定 点击操作 以下是对这段代码的逐行解释&#xff1a; <script>export let name;let beltColour "black";const handleClick () > {beltColour "orange&quo…

[RK3588_Android12] 关于IMX415摄像头模组 awb出现偏蓝的问题

问题描述 IMX415摄像头模组 有些场景偏色&#xff0c;主要是偏蓝色。 解决方案&#xff1a; 使用一下效果文件imx415_CMK-OT2022-PX1_IR0147-50IRC-8M-F20-0415.json //链接&#xff1a;https://pan.baidu.com/s/1YMToOxKv9bcTuZntJHdKeg //提取码&#xff1a;6njl另外如果偏…

yolov8使用:数据格式转换(目标检测、图像分类)多目标跟踪

安装 yolov8地址&#xff1a;https://github.com/ultralytics/ultralytics git clone https://github.com/ultralytics/ultralytics.git安装环境&#xff1a; pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple目标检测 标注格式转换 若使用 labelimg…

【PPT】根据字体大小自动缩放文本框大小

【PPT】根据字体大小自动缩放文本框大小 一般我们新建文本框输入文字后&#xff0c;文本框的大小是不会自动缩放的&#xff0c;是根据你一开始拖动的尺寸固定的 你可以设置文本框的长度随着文字的变化而自动调整。这样&#xff0c;无论你输入多少文字&#xff0c;文本框都会自…

数据库漫谈-infomix

infomix数据库知名度不高&#xff0c;主要跟它的定位有关&#xff0c;它主要用于unix操作系统&#xff1a;Informix便是取自Information和Unix的结合&#xff0c;它也是第一个支持linux系统的数据库。它其实在金融、电信行业使用率非常高。98年&#xff0c;当时我在做银行领域的…

pytorch之训练实例

PyTorch 训练机器学习模型的一般流程 数据准备 收集并处理训练数据集和验证/测试数据集 使用 PyTorch 的数据加载器 DataLoader 将数据集转换为可用于训练的格式 模型定义 使用 PyTorch 的 nn.Module 定义模型的结构 例如,对于一个简单的全连接神经网络: import torch.nn …

二分学习·P10389 [蓝桥杯 2024 省 A] 成绩统计

P10389 成绩统计 当时在考场上完全没有头绪&#xff0c;想暴力枚举&#xff0c;结果都不知道怎么写&#xff0c;果然还是有妙法在其中。 题目的描述如下&#xff08;省流不了&#xff09;&#xff1a;   小蓝的班上有 n n n 个人&#xff0c;一次考试之后小蓝想统计同学们的…

pqgrid的使用

npm安装pqgrid npm install pqgridf --registryhttps://registry.npmmirror.com npm install jquery-ui --registryhttps://registry.npmmirror.comvue文件 <template><div><div id"grid_json"></div></div> </template><s…

Nested KVM Hypervisor Support

Description Nested KVM是指基于虚拟化技术的虚拟机管理系统。 Nested KVM在Intel处理器上&#xff0c;KVM使用Intel的vmx&#xff08;virtualmachine eXtensions&#xff09;来提高虚拟机性能&#xff0c;即硬件辅助虚拟化技术。如果一台虚拟机能够和物理机一样支持vmx&…

[数据集][目标检测]数据集VOC格式岸边垂钓钓鱼fishing目标检测数据集-4330张

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;4330 标注数量(xml文件个数)&#xff1a;4330 标注类别数&#xff1a;1 标注类别名称:["fishing"] 每…

论文阅读笔记(十二)——Augmenting large language models with chemistry tools

论文阅读笔记(十二)——Augmenting large language models with chemistry tools TOC Abstract 大型语言模型&#xff08;LLMs&#xff09;在跨领域任务中表现出色&#xff0c;但在化学相关问题上却表现不佳。这些模型也缺乏外部知识源的访问权限&#xff0c;限制了它们在科…

自定义线程池,实现父线程MDC的自动拷贝

1、思路 创建线程池时&#xff0c;我们需要一个创建线程的工厂类&#xff0c;一般都是重写这个工厂类来实现的&#xff0c;这里我们用一个更简单的方法。 线程在执行前&#xff0c;可以先通过MDC.getCopyOfContextMap()获取父线程的MDC的拷贝&#xff0c;执行时&#xff0c;判…

数据中台设计方案(原版word获取)

通过中台建设实现企业能力复用&#xff0c;包括能力整合、业务创新、业务和数据闭环、组织模式演进等。 数字能力整合 企业的数字能力一般包括数字化营销、数字化产品、数字化供应链、数字化生产、数字化运营等。企业的数字化能力的充分利用&#xff0c;从而达到可持续发展。数…

基于语音识别的智能电子病历(四)语音识别的要求 3

前一章讲的是不同医院对语言识别结果的个性化需求&#xff0c;现在说一下不同的医生对于识别结果的需求。我们看下面的这个例子&#xff0c;例子中对很多细节都有明确的要求。 004X医院4811XX医生 规范 医生基本信息&#xff1a;4811XX--dictating doctXXXX H. LXXXXX MD-CARD …

使用IDEA在WSL2的Ubuntu的docker中运行项目

1、新建项目 1.1 从远程仓库拉取代码 2、配置环境 2.1 配置IDEA运行环境 2.1.1 配置JDK 注意&#xff1a;Ubuntu 20.04运行项目请使用JDK11&#xff0c;使用JDK8会编译报错&#xff0c;报错如下&#xff1a; 2.1.2 配置Maven 2.1.3 配置运行环境 2.1.4 配置远程Debug 2.2、配…

基础—SQL—DQL(数据查询语言)分组查询

一、引言 分组查询的关键字是&#xff1a;GROUP BY。 二、DQL—分组查询 1、语法 SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ]; 注意&#xff1a; 1、[ ] 里的内容可以有可以没有。 2、这条SQL语句有两块指定条件的地方&#…

抖音小店如何经营无货源产品!

一、开店 店铺类型要选择个体店&#xff0c;不要选择个人店或者企业店铺。 个人店的限制太多&#xff0c;没有发展的空间&#xff0c;企业店不适合新手操作&#xff0c;而且还涉及复杂的税务问题。 我们直接在抖音小店官网按照系统的要求&#xff0c;一步步提交营业执照&…