2024春招冲刺题单 ONT68 最接近的三数之和【中等 数组,递归 Java,Go,PHP】

news2024/11/24 14:21:29

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/f889497fd1134af5af9de60b4d13af23
相同题目:
https://www.lintcode.com/problem/59

思路

	本题答案是n数之和相关问题的模板。

参考答案Java

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @param target int整型
     * @return int整型
     */
    public int ClosestSum (int[] nums, int target) {
        int[] help = {0, -1}; //-1表示help还没有赋值
        dfs(nums, 0, new ArrayList<>(), 0, target, help);
        return help[0];
    }

    //N数之和的递归模版
    public void dfs(int[] nums, int index, List<Integer> path, int sum, int target,
                    int[] help) {
        if (path.size() == 3) {
            int diff = Math.abs(sum - target);
            if (help[1] == -1) {
                help[0] = sum;
                help[1] = diff;
            } else if (help[1] > diff) {
                help[0] = sum;
                help[1] = diff;
            }
            return;
        }

        for (int i = index; i < nums.length ; i++) {
            path.add(nums[i]);
            dfs(nums, i + 1, path, sum + nums[i], target, help);
            path.remove(path.size() - 1); //恢复现场
        }
    }
}

参考答案Go

package main



/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param nums int整型一维数组
 * @param target int整型
 * @return int整型
 */
func ClosestSum(nums []int, target int) int {
	help := []int{0, -1} //-1 表示还没有赋值
	path := []int{}
	dfs(nums, 0, path, 0, target, &help)
	return help[0]
}

//n数之和的递归模版
func dfs(nums []int, index int, path []int, sum int, target int, help *[]int) {
	if len(path) == 3 {
		diff := sum - target
		if diff < 0 {
			diff = diff * -1 //绝对值
		}

		if (*help)[1] == -1 {
			(*help)[0] = sum
			(*help)[1] = diff
		} else if (*help)[1] > diff {
			(*help)[0] = sum
			(*help)[1] = diff
		}

		return
	}

	for i := index; i < len(nums); i++ {
		path = append(path, nums[i])
		dfs(nums, i+1, path, sum+nums[i], target, help)

		path = path[:len(path)-1] //恢复现场
	}
}

参考答案PHP

<?php


/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param target int整型 
 * @return int整型
 */
function ClosestSum( $nums ,  $target )
{
   $help = [0,-1]; //-1表示还没有赋值
    dfs($nums,0,array(),0,$target,$help);
    return $help[0];
}


//n数之和的递归模板
function dfs($nums,$index,$path,$sum,$target,&$help){
    if(count($path) ==3) {
        $diff = $sum-$target;
        if($diff <0)
            $diff =$diff*-1;

        if($help[1] ==-1){
            $help[0] =$sum;
            $help[1] = $diff;
        }else if($help[1] > $diff){
            $help[0] =$sum;
            $help[1] = $diff;
        }
        return;
    }

    for($i=$index;$i<count($nums);$i++){
        array_push($path,$nums[$i]);
        dfs($nums,$i+1,$path,$sum+$nums[$i],$target,$help);
        array_pop($path);//恢复现场
    }
}

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

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

相关文章

【C语言】“vid”Microsoft Visual Studio安装及应用(检验内存泄露)

文章目录 前言安装包获取配置VLD完成 前言 我们在写代码时往往容易存在内存泄漏的情况&#xff0c;所以存在这样一个名为VLD的工具用来检验内存泄漏&#xff0c;现在我来教大家安装一下 安装包获取 vld下载网址&#xff1a;https://github.com/KindDragon/vld/releases/tag/…

【GPT5进展】GPT-5将于今年年中发布

OpenAI即将发布的GPT-5代表了人工智能技术的一个重大进步&#xff0c;这一新一代模型预计将进一步扩大OpenAI在AI应用领域的影响力。以下是关于GPT-5的几个关键点&#xff0c;旨在清晰、简洁地向读者传达这一重要更新&#xff1a; 1. 性能和功能的实质性提升 GPT-5在性能上做…

读取信息boot.bin和xclbin命令

bootgen读Boot.bin命令 johnjohn-virtual-machine:~/project_zynq/kv260_image_ubuntu22.04$ bootgen -read BOOT-k26-starter-kit-202305_2022.2.bin xclbinutil读xclbin命令 johnjohn-virtual-machine:~/project_zynq/kv260_image_ubuntu22.04$ xclbinutil -i kv260-smartca…

2024 年每个程序员都应该尝试的 8 个AI工具

随着人工智能技术的极速发展&#xff0c;新的 AI 工具正以前所未有的速度涌现&#xff0c;为开发者们带来了前所未有的机会和挑战。在这个不断演进的时代&#xff0c;掌握最新的 AI 技术已成为每个程序员的必修课。 在本文中&#xff0c;我们收集了8 个程序员在 2024 年值得尝…

函数调用实现小米汽车智能语音助手

上周小米汽车发布&#xff0c;其中有一个特色功能就是智能语音&#xff0c;小爱同学整合了语音大模型&#xff0c;实现智能座舱体验。 雷老板的PPT也演示了&#xff0c;一些口语化的对话就能触发各种指令&#xff0c;无论是开空调、播放音乐&#xff0c;还是找手机、识别前方汽…

vulnhub pWnOS v2.0通关

知识点总结&#xff1a; 1.通过模块来寻找漏洞 2.msf查找漏洞 3.通过网站源代码&#xff0c;查看模块信息 环境准备 攻击机&#xff1a;kali2023 靶机&#xff1a;pWnOS v2.0 安装地址&#xff1a;pWnOS: 2.0 (Pre-Release) ~ VulnHub 在安装网址中看到&#xff0c;该靶…

axios 封装 http 请求详解

前言 Axios 是一个基于 Promise 的 HTTP 库&#xff0c;它的概念及使用方法本文不过多赘述&#xff0c;请参考&#xff1a;axios传送门 本文重点讲述下在项目中是如何利用 axios 封装 http 请求。 一、预设全局变量 在 /const/preset.js 中配置预先设置一些全局变量 window.…

【Qt 学习笔记】Qt 背景介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt 背景介绍 文章编号&#xff1a;Qt 学习笔记 / 01 文章目录 Qt 背景…

vue 条件渲染、列表循环渲染、事件绑定 初探第三天

条件渲染 <script>const app Vue.createApp({data(){return {show:true,conditionOne: false,conditionTwo: true,}},template:<div v-if"show"> hello word </div><div v-if"conditionOne"> if </div><div v-else…

[lesson02]C到C++的升级

C到C的升级 C与C的关系 C继承了所有的C特性C在C的基础上提供了更多的语法和特性C的设计目标是运行效率与开发效率的统一 C到C的升级 C更强调语言的实用性 所有的变量都可以在需要使用时再定义 int c 0; for (int i 1; i < 3; i) {for(int j 1; j < 3; j){c i * …

Kubernetes(k8s):部署、使用 metrics-server

Kubernetes&#xff08;k8s&#xff09;&#xff1a;部署、使用 metrics-server 一、metrics-server简介二、部署metrics-server2.1、 下载 Metrics Server 部署文件2.2、修改metrics-server.yaml 文件2.3、 部署 Metrics Server2.4、 检查 Metrics Server 三、使用 Metrics Se…

国资委确定首批起航企业,重点布局人工智能、量子信息等新兴领域

国务院国资委近日按照“四新”&#xff08;新赛道、新技术、新平台、新机制&#xff09;标准&#xff0c;遴选确定了首批启航企业&#xff0c;加快新领域新赛道布局、培育发展新质生产力。 据了解&#xff0c;去年以来&#xff0c;国务院国资委围绕加快培育创新型国有企业&…

hadoop 查询hdfs资源信息的方式

hdfs dfsadmin -report &#xff3b;-live&#xff3d;&#xff3b;-dead&#xff3d;&#xff3b;-decommissioning&#xff3d;

用动态规划求解多段图的最短路径问题

题目描述 对如下图所示的一个5段图&#xff0c;图上的数字代表该段路径的成本。写出求最短路径的计算过程&#xff0c;给出最短路径和距离。 思路分析 创建一个边权数组edgeWeigth&#xff0c;存储顶点和边的信息&#xff0c;用来表示图创建一个cost数组&#xff0c;索引in…

【MySQL系列】使用 ALTER TABLE 语句修改表结构的方法

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

STM32 DWT数据观察触发器作为延时函数的使用

STM32 DWT数据观察触发器作为延时函数的使用 &#x1f4d1;DWT(Data Watchpoint and Trace数据观察触发器&#xff09;描述 &#x1f4dd;DWT是属于处理器内核单元中的调试组件之一&#xff0c;由四个比较器组成。它们可配置为&#xff1a;硬件监视点或对ETM或PC采样器或数据地…

智慧工厂建设全面指南 从规划到实施

随着工业4.0和工业互联网的发展&#xff0c;智慧工厂已成为制造业的热门话题。智慧工厂通过运用先进的信息技术、自动化技术和人工智能技术&#xff0c;实现生产过程的智能化、数字化和网络化&#xff0c;提高生产效率、降低生产成本、提升产品质量&#xff0c;为企业创造更大的…

【C++第二阶段】文件操作

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 文件操作文件写入流程简单的demo写操作 文件读流程二进制写文件二进制读文件 文件操作 文件写入流程 写文件包括以下几个步骤 1.包含头文件 2.创建流对象 3.打开文件&#xff0…

CSS面试题---基础

1、css选择器及优先级 选择器优先级&#xff1a;内联样式>id选择器>类选择器、属性选择器、伪类选择器>标签选择器、微元素选择器 注意&#xff1a; !important优先级最高&#xff1b; 如果优先级相同&#xff0c;则最后出现的样式生效&#xff1b; 继承得到的样式优先…

商城网站-礼品网站首页html+css+js+说明文档

网页设计与网站建设作业htmlcssjs 预览 说明 单页面&#xff0c;轮播图 获取&#xff1a;https://hpc.baicaitang.cn/2077.html