zoukankan      html  css  js  c++  java
  • 1:TwoSum(如果两个和为某个数,找出这俩数的位置)

    package leetcode;
    
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author mercy
     *Example:
     *Given nums = [2, 7, 11, 15], target = 9,
     *Because nums[0] + nums[1] = 2 + 7 = 9,
     *return [0, 1].
     */
    public class TwoSum {
    	public static void main(String[] args) {
    		int[] nums={2,0,4,9,5,7,10,9};
    		int target=12;
    		int[] arr=twoSum1(nums,target);
    		System.out.println(arr[0]+"--"+arr[1]);
    	}
    	public static int[] twoSum(int[] nums, int target) {
    		Map<Integer,Integer> map=new HashMap<>();
    		for(int i=0;i<nums.length;i++){
    			map.put(nums[i], i);
    		}
    		for(int i=0;i<nums.length;i++){
    			int other=target-nums[i];
    			if(map.containsKey(other)&&map.get(other)!=i){
    				 return new int[] { i, map.get(other) };
    			}
    		}
    		throw new IllegalArgumentException("No two sum solution");
        }
    	/**
    	 * @param nums
    	 * @param target
    	 * @return
    	 * 用Map方法
    	 * @author mercy
    	 */
    	public static int[] twoSum1(int[] nums, int target) {
    		Map<Integer,Integer> map=new HashMap<>();
    		for(int i=0;i<nums.length;i++){
    			int other=target-nums[i];
    			if(map.containsKey(other)){
    				return new int[]{map.get(other),i};
    			}
    			map.put(nums[i], i);
    		}	
    		throw new IllegalArgumentException("No two sum solution");
        }
    	
    	/**
    	 * @param nums
    	 * @param target
    	 * @return
    	 * 传统的方法
    	 * @author mercy
    	 */
    	public static int[] twoSum2(int[] nums, int target) {
    		for(int i=0;i<nums.length;i++){
    			for(int j=i+1;j<nums.length;j++){
    				if(nums[j]==target-nums[i]){
    					return new int[] {i,j};
    				}
    			}
    		}
    		throw new IllegalArgumentException("No two sum solution");
        }
    
    }
  • 相关阅读:
    新经资讯项目业务逻辑梳理
    HTTP状态保持的原理
    CSRF的原理和防范措施
    装饰器路由具体实现梳理
    Flask中异常捕获
    正则匹配路由
    (搬运以学习)flask 上下文的实现
    flask之请求钩子
    如何在linux中创建虚拟环境
    面包屑导航
  • 原文地址:https://www.cnblogs.com/JAYIT/p/6956072.html
Copyright © 2011-2022 走看看