• 【嘎】数组中两数之和取下标


    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素

    示例: 给定 nums = [2, 7, 11, 15], target = 9
          因为 nums[0] + nums[1] = 2 + 7 = 9
        所以返回 [0, 1]

    public class LeetCode {
        /**
         * @param nums
         * @param target
         * @return
         */
        public int[] twoSum(int[] nums, int target) {
            int arr[] = new int[2]; // 差点想不起来,另一种是直接  = {1,2,3}
            for (int i = 0; i < nums.length - 1; i++) {
                for (int j = i + 1; j < nums.length; j++) {
                    int res = nums[i] + nums[j];
                    if (target == res) {
                        arr[0] = i; // 这里一开始写的push,咦
                        arr[1] = j;
                        break;
                    }
                }
            }
            return arr;
        }
        private int[] twoSum2(int[] nums, int target) {
            if (nums == null || nums.length <= 1) {
                return null;
            }
            for (int i = 0; i < nums.length; i++) {
                for (int j = i + 1; j < nums.length; j++) {
                    if (nums[i] + nums[j] == target) {
                        return new int[] { i, j };
                    }
                }
            }
            return null;
        }
        /**
         * 利用hash
         * @param nums
         * @param target
         * @return
         */
        private int[] twoSum3(int[] nums, int target) {
            Map<Integer, Integer> map = new HashMap<>(1);
            for (int i=0; i < nums.length; i++) {
                map.put(nums[i], i);
            }
            for (int i = 0;i < nums.length; i++) {
                int res = target = nums[i];
    //            要求里面有【你不能重复利用这个数组中同样的元素】
    //            if (map.containsKey(res)) {
                if (map.containsKey(res) && map.get(res) != i) {
                    return new int[]{i, map.get(res)};
                }
            }
            return null;
        }
        
    越努力越幸运~ 加油ヾ(◍°∇°◍)ノ゙
  • 相关阅读:
    两台centos,用yum install 安装,一台成功,一台失败
    django 删除默认app
    FFmpeg
    安装nginx
    django markdown格式化变量
    安装python3.8
    安装 docker
    Centos7 安装selenium webdriver环境
    收集网页数据方法
    logstash 6.3.2下载地址
  • 原文地址:https://www.cnblogs.com/utomboy/p/12402556.html
Copyright © 2020-2023  润新知