• 1.Two Sum


    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example:

    Given nums = [2, 7, 11, 15], target = 9,

    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].
    算法复杂度O(nlogn)

    public class Solution {
        public int[] twoSum(int[] nums, int target) {
            int[] p=new int[2];
    		for(int i=0;i<nums.length;i++){
    			for(int j=i+1;j<nums.length;j++){
    				if((nums[i]+nums[j]) == target){					
    					p[0]=i;
    					p[1]=j;	
    				}
    			}			
    		}
    		return p;
        }
    }
    

    discuss里中O(n)方法

    class Solution {
        public int[] twoSum(int[] nums, int target) {
            Map<Integer,Integer> map = new HashMap<Integer,Integer>();
            int[] res = new int[2];
            int length = nums.length;
            for(int i = 0; i< length;i++){
                if(map.containsKey(nums[i])){
                    res[1]=i;
                    res[0]=map.get(nums[i]);
                }else{
                    map.put(target-nums[i],i);
                }
            }
        return res;
        }
    }
    
  • 相关阅读:
    堆排序(改进的简单选择排序)
    希尔排序(改进的直接插入排序)
    直接插入排序
    简单选择排序
    冒泡排序&排序算法简介
    处理器的体系结构
    虚拟存储器
    Python函数
    在主项目中添加子项目
    聚合分组查询
  • 原文地址:https://www.cnblogs.com/a1225234/p/10277836.html
Copyright © 2020-2023  润新知