leetcode_Two Sum
来源:互联网 发布:mac chrome 导出插件 编辑:程序博客网 时间:2024/06/05 19:48
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].
package com.two.num;import java.util.HashMap;import java.util.Map;/* Question Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].*/public class Solution {/* * Time complexity : O(n^2) Space complexity : O(n) */public static int[] twoSum1(int[] nums, int target) {int[] indecies = new int[2];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 };}}}return indecies;}/* * Time complexity : O(n) Space complexity : O(n) */public static int[] twoSum2(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; i++) {map.put(nums[i], i);}for (int i = 0; i < nums.length; i++) {int complement = target - nums[i];if (map.containsKey(complement) && map.get(complement) != i)return new int[] { i, map.get(complement) };}throw new IllegalArgumentException("No two sum solution");}/* * Time complexity : O(n) Space complexity : O(n) */public static int[] twoSum3(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int complement = target - nums[i];if (map.containsKey(complement)) {return new int[] { map.get(complement), i };}map.put(nums[i], i);}throw new IllegalArgumentException("No two sum solution");}public static void main(String[] args) {// TODO Auto-generated method stubint[] test = { 3, 2, 4 };int target = 6;int[] indecies = twoSum2(test, target);for (int k = 0; k < indecies.length; k++) {System.out.println(indecies[k]);}}}
阅读全文
0 0
- leetcode_Two Sum
- Leetcode_Two Sum
- LeetCode_Two Sum
- LeetCode_Two Sum
- LeetCode_Two Sum
- LeetCode_Two Sum
- leetcode_two sum
- Leetcode_Two Sum
- leetcode_Two sum
- leetcode_Two Sum
- leetcode_two sum()
- Leetcode_Two Sum II
- leetcode_Two Sum II
- Leetcode_two-sum (c++ and python version)
- Sum
- sum
- sum
- Sum
- 图片旋转问题(指针旋转问题)
- 页面置换算法
- Android双进程守护
- js实现倒计时
- Excel中将时间格式转化成时间戳格式
- leetcode_Two Sum
- Java中堆,栈,堆栈的区别
- opencv waitKey用法 目标追踪 控制程序暂停 开始
- C++中extern关键字使用
- 【LeetCode】 162. Find Peak Element
- Linux 开机流程及boot loader
- Rational Rose 2007安装
- java中Atomic类之AtomicInteger-api
- 整合sparkstreaming和kafka,手动管理kafka的offsets(重点)