牛客NC275 和为S的两个数字【简单 map C++/Java/Go/PHP】

发布于:2024-05-05 ⋅ 阅读:(28) ⋅ 点赞:(0)

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

思路

map

参考答案C++

#include <vector>
class Solution {
  public:
    vector<int> FindNumbersWithSum(vector<int> array, int sum) {
        vector<int> ans;
        map<int, int> map1;
        for (int i = 0; i < array.size(); i++) {
            auto it = map1.find(sum - array[i]);


            if (it != map1.end())

            {
                if(it->first == sum-array[i]){
                    ans.push_back(sum-array[i]);
                    ans.push_back(array[i]);
                    break;
                }    

            }

            map1[array[i]] = array[i];

        }
        return ans;
    }
};

参考答案Java

import java.util.*;
import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> FindNumbersWithSum(int [] array, int sum) {
        ArrayList<Integer>  ans = new ArrayList<>();
        Map<Integer, Integer> map = new HashMap<>();
        for (int v : array) {
            if (map.containsKey(sum - v)) {
                ans.add(sum - v);
                ans.add(v);
                break;
            }

            map.put(v, v);
        }

        return ans;
    }
}

参考答案Go

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param array int整型一维数组 
 * @param sum int整型 
 * @return int整型一维数组
*/
func FindNumbersWithSum( array []int ,  sum int ) []int {
    ans:=[]int{}
    map1:=map[int]int{}
    for _,v:=range array {

        _,exist:= map1[sum-v] 
        if exist {
            ans= append(ans, sum-v)
            ans=append(ans, v)
            break
        }

        map1[v]=v
    }
    return ans 
}

参考答案PHP

<?php


/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param array int整型一维数组 
 * @param sum int整型 
 * @return int整型一维数组
 */
function FindNumbersWithSum( $array ,  $sum )
{
    $ans = [];
    $map = [];

    foreach($array as $v){
        if(isset($map[$sum-$v])){
            $ans[0] = $sum-$v;
            $ans[1] = $v;
            break;
        }

        $map[$v] = $v;
    }
    return  $ans;
}

网站公告

今日签到

点亮在社区的每一天
去签到