题解 | #和为S的两个数字#

和为S的两个数字

http://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
        ArrayList<Integer> res = new ArrayList<>();
        // 一些特殊情况的处理
        if (array.length < 2) {
            return res;
        }
        int[] map = new int[array[array.length - 1] + 1];
        for (int i = 0; i < array.length; i++) {
            int tmp = sum - array[i];
            if (tmp >= 1 && tmp <= array[array.length - 1] && map[tmp] != 0) {
                res.add(array[i]);
                res.add(tmp);
                break;
            }
            map[array[i]] = 1;
        }
        return res;
    }
}
全部评论

相关推荐

1jian10:48h没写面评会变成这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务