C语言 | Leetcode C语言题解之第16题最接近的三数之和

news2025/2/27 5:30:57

题目:

题解:

int comp(const void *a, const void *b) { return *(int *)a - *(int *)b; }
int threeSumClosest(int *nums, int numsSize, int target) {
    int n = numsSize;
    qsort(nums, n, sizeof(int), comp);
    int best = 1e7;

    // 根据差值的绝对值来更新答案

    // 枚举 a
    for (int i = 0; i < n; ++i) {
        // 保证和上一次枚举的元素不相等
        if (i > 0 && nums[i] == nums[i - 1]) {
            continue;
        }
        // 使用双指针枚举 b 和 c
        int j = i + 1, k = n - 1;
        while (j < k) {
            int sum = nums[i] + nums[j] + nums[k];
            // 如果和为 target 直接返回答案
            if (sum == target) {
                return target;
            }
            if (abs(sum - target) < abs(best - target)) {
                best = sum;
            }
            if (sum > target) {
                // 如果和大于 target,移动 c 对应的指针
                int k0 = k - 1;
                // 移动到下一个不相等的元素
                while (j < k0 && nums[k0] == nums[k]) {
                    --k0;
                }
                k = k0;
            } else {
                // 如果和小于 target,移动 b 对应的指针
                int j0 = j + 1;
                // 移动到下一个不相等的元素
                while (j0 < k && nums[j0] == nums[j]) {
                    ++j0;
                }
                j = j0;
            }
        }
    }
    return best;
}

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

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

相关文章

常见安全漏洞及其解决方案

1、 SQL注入漏洞 漏洞描述&#xff1a; SQL注入被广泛用于非法入侵网站服务器&#xff0c;获取网站控制权。它是应用层上的一种安全漏洞。通常在设计存在缺陷的程序中&#xff0c;对用户输入的数据没有做好过滤&#xff0c;导致恶意用户可以构造一些SQL语句让服务器去执行&…

2024第十九届中国(温州)机械装备展9月20-22日举行

第十九届中国&#xff08;温州&#xff09;机械装备展览会 THE 19TH CHINA (WENZHOU) MACHINERY EQUIPENT EXHIBITION 第十九届中国&#xff08;温州&#xff09;国际紧固件博览会 THE 19TH CHINA (WENZHOU) NTERNATIONAL FASTENER EXPOSITION 时间&#xff1a;2024年9月…

APP软件的运营方法

APP软件的运营是一个复杂的过程&#xff0c;涉及到多个方面的策略和方法。以下是一些有效的APP运营方法&#xff0c;通过这些方法&#xff0c;APP运营者可以有效地吸引和留住用户&#xff0c;提高用户活跃度和忠诚度&#xff0c;最终实现商业成功。北京木奇移动技术有限公司&am…

C语言 函数——断言与防御式编程

目录 如何确定假设的真假&#xff1f; 断言 防御式编程&#xff08;Defensive programming&#xff09; 如何确定假设的真假&#xff1f; 程序中的假设 *某个特定点的某个表达式的值一定为真 *某个特定点的某个表达式的值一定位于某个区间等 问题&#xff1a;如何确定这些…

K8s拉取habor镜像

目录 在daemon.json中添加仓库地址 重新加载daemon.json并重启docker 在目标node节点添加域名 验证目标node是否能正常登录镜像仓库 创建pod资源 加载yml文件 验证 查看pod的ip与端口号 在daemon.json中添加仓库地址 此处需要在创建资源对象所在的节点进行添加 路径&a…

AcWing 1027. 方格取数

解题思路 如果使用了先走和后走的方式&#xff0c;这种方式利用了贪心的思想&#xff0c;会产生局部最优解&#xff0c; 但局部最优解毕竟不是全局最优解。所以要采用同时走的方式。 相关代码 import java.util.Scanner;public class Main {static int w[][] new int[15][15]…

建筑设计全过程碳排放计算与案例分析

“30/60双碳目标”已成为我国绿色发展的新国策&#xff0c;建筑业对碳排放量化分析和减排也越来越重视。特别是全文强制性国标标准《建筑节能与可再生能源利用通用规范》GB55015-2021的实施&#xff0c;对建设项目可行性研究报告、建设方案和初步设计要求进行建筑碳排放分析&am…

不可错过的3D建模素材网站,让设计更加丰富多彩!

3D建模已经渗透到了各个行业和领域&#xff0c;从游戏设计、室内设计到建筑设计&#xff0c;3D模型的使用越来越广泛。然而&#xff0c;创建出优秀的3D模型就需要大量的优质3D建模素材。幸运的是&#xff0c;有一些网站提供了大量的高质量3D建模素材&#xff0c;这些都是我们设…

又踩坑了!BigDecimal使用的5个坑!

前言 在日常开发中&#xff0c;BigDecimal类被广泛用于精确的数值、金额的计算。但是在使用BigDecimal的过程中&#xff0c;存在以下这几个坑&#xff0c;大家要注意一下哈~~ 1.浮点数初始化的坑 反例: BigDecimal problematic new BigDecimal(0.1); System.out.println(&…

Microsoft Office LTSC 2021企业办公新标杆,稳定高效助力业务发展

Microsoft Office LTSC 2021包含Word、Excel、PowerPoint等常用组件&#xff0c;支持实时共享和智能转换功能&#xff0c;允许多个用户同时编辑文档&#xff0c;提高了团队协作效率。还加强了安全性和隐私保护&#xff0c;通过加密协议和安全验证等方法&#xff0c;有效防止了恶…

Fiddler的安装和使用——PC端移动端抓包

Fiddler的安装和使用——PC端&移动端抓包 前言使用fiddler的原因 安装方法安装Fiddler :双击下载的fiddlerSetup.exe,弹出如下界面&#xff0c;点击I Agree 使用方法——PC端抓包配置&#xff1a;打开Fiddler文件夹&#xff0c;点击Fiddler.exe运行fiddler进行配置抓取HTTP…

CSS-文字环绕浮动、行内块分页、三角强化妙用、伪元素选择器

文字环绕浮动 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>文字环绕浮动效果</title><s…

解决unbuntu更新到23.10 mantic firefox无法使用的问题

产看历史版本号&#xff1a; 升级到最新版本后查看&#xff1a; roottesthost01:/home/test/Desktop# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 23.10 Release: 23.10 Codename: mantic 打开firefox发现图标找…

OV证书为什么更可信

在网络安全领域&#xff0c;SSL/TLS证书扮演着至关重要的角色&#xff0c;其中组织验证&#xff08;Organization Validation&#xff0c;简称OV&#xff09;证书以其深度验证机制和高度可信性脱颖而出。 OV证书为何更值得信赖&#xff0c;关键在于其严格的验证流程。 首先&am…

2. Spring的创建和Bean的存取

经过前面的学习我们已经大体明白了 IOC 思想以及它的实现方式 DI &#xff0c;本节要讲的是如何Spring框架实现实现DI。 本节目标&#xff1a; Spring(Core) 项目创建将对象存储到 Spring 中将对象(bean)从 Spring 中取出 1. 创建 Spring 项目 与开篇演示的 Spring Boot 项目不…

个人成长秘籍:参加六西格玛绿带培训的好处

在当今竞争激烈的商业环境中&#xff0c;追求卓越与持续改进已成为企业和个人成功的关键。六西格玛绿带培训&#xff0c;作为一种全面提升管理技能和工作效率的培训课程&#xff0c;不仅帮助企业优化流程、提高质量和效率&#xff0c;也为个人职业发展开辟了一条光明大道。张驰…

电脑怎么下载微信小程序的视频

电脑怎么下载微信小程序中的视频资源&#xff0c;本篇文章就教大家如何下载微信小程序的视频资源的方法&#xff0c;这里要借助一个工具:下载高手 下载高手链接&#xff1a;https://pan.baidu.com/s/1qJ81sNBzzzU0w6DWf-9Nxw?pwdl09r 提取码&#xff1a;l09r --来自百度网盘…

Web后端搭建

目录 一 搭建服务器端 1.1安装服务器软件 1.2检查环境是否配置 1.3安装Tomcat 二 创建并发Web项目 2.1创建一个java项目 三 创建Servlet 前端程序如何才能访问到后端程序呢&#xff0c;这时候我们就需要web服务器来解决&#xff1a;将后端程序部署到服务器中&#xff0c…

常见的 Android app 测试面试题

一、开场问题&#xff1a;&#xff08;自由发挥&#xff09; 1、请自我介绍一下&#xff1b; 2、为什么离开上一个公司呢&#xff1f; 3、做测试多久了&#xff1f;以前做过哪些项目&#xff1f;你们以前测试的流程是怎样的&#xff1f;用过哪些测试工具&#xff1f; 4、你觉得…

【攻防利器】Dirsearch 扫描工具

Dirsearch工具引言&#xff1a; Dirsearch是一个用Python编写的开源工具&#xff0c;用于在目标网站上执行基于字典的目录/文件枚举。它可以帮助渗透测试人员和安全研究人员识别目标网站上可能存在但未公开的目录或文件&#xff0c;从而发现潜在的安全风险。 Dirsearch下载地址…