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].
1. 用两个循环
class Solution {
public int[] twoSum(int[] nums, int target) {
int [] res = new int [2];
for(int i = 0 ; i < nums.length ; i++) {
for(int j = 0 ; j < nums.length ; j++) {
if(i != j && target == nums[i] + nums[j]) {
res[0] = i;
res[1] = j;
}
}
}
return res;
}
}
2. 用Map

2. Two Sum II - Input array is sorted

Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.

The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.

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

Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2

class Solution {
public int[] twoSum(int[] numbers, int target) {
Map<Integer,Integer> map = new HashMap<>();
for(int i = 0 ; i < numbers.length ; i++) {
int tmp = target - numbers[i];
if(map.containsKey(tmp)) {
return new int []{map.get(tmp),i+1};
}
map.put(numbers[i],i+1);
}
throw new IllegalArgumentException("No two sum solution");
}
}

3. Two Sum IV - Input is a BST

Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target.

Example 1:

Input:
5
/ \
3 6
/ \ \
2 4 7 Target = 9 Output: True
class Solution {
public boolean findTarget(TreeNode root, int k) {
Set<Integer> set = new HashSet<>();
return find(root,k,set);
} public boolean find(TreeNode root, int k , Set<Integer> set) {
if(root == null) return false;
if(set.contains(k - root.val)) {
return true;
}
set.add(root.val);
return find(root.left,k,set) || find(root.right,k,set);
}
}

4. Rotate Array

Rotate an array of n elements to the right by k steps.

For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

声明一个长度为原数组两倍的数组,然后拼接

class Solution {
public void rotate(int[] nums, int k) {
int [] tmp = new int[nums.length * 2];
for(int i = 0 ; i < nums.length ; i++) {
tmp[i] = tmp[i + nums.length] = nums[i];
}
if(nums.length < k) {
k = k % nums.length;
}
for(int i = 0 ; i < nums.length; i++) {
nums[i] = tmp[i + nums.length - k];
}
}
}

5. Word Pattern

Given a pattern and a string str, find if str follows the same pattern.

Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.

Examples:

  1. pattern = "abba", str = "dog cat cat dog" should return true.
  2. pattern = "abba", str = "dog cat cat fish" should return false.
  3. pattern = "aaaa", str = "dog cat cat dog" should return false.
  4. pattern = "abba", str = "dog dog dog dog" should return false.
    class Solution {
    public boolean wordPattern(String pattern, String str) {
    Map<Character,String> map = new HashMap<>();
    String [] strings = str.split(" ");
    if(pattern.length() != strings.length) {
    return false;
    }
    String tmp = "";
    for(int i = 0 ; i < pattern.length();i++) {
    if(map.containsKey(pattern.charAt(i))) {
    if(!map.get(pattern.charAt(i)).equals(strings[i])) {
    return false;
    }
    }else if(tmp.equals(strings[i])){
    //确定他不是所有的value都一样的情况,比如dog dog dog dog和abba
    return false;
    } else{
    map.put(pattern.charAt(i),strings[i]);
    tmp = strings[i];
    }
    }
    return true;
    }
    }

6.  Isomorphic Strings

Given two strings s and t, determine if they are isomorphic.

Two strings are isomorphic if the characters in s can be replaced to get t.

All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.

For example,
Given "egg""add", return true.

Given "foo""bar", return false.

Given "paper""title", return true.

跟上面那个题一样的啊

class Solution {
public boolean isIsomorphic(String s, String t) {
Map<Character,Character> map = new HashMap<>();
if(s.length() != t.length()) {
return false;
}
Character tmp = '1';
for(int i =0 ; i < s.length();i++) {
if(map.containsKey(s.charAt(i))) {
if(!map.get(s.charAt(i)).equals(t.charAt(i))) {
return false;
}
}else if(tmp == t.charAt(i)) {
return false;
}else{
map.put(s.charAt(i),t.charAt(i));
tmp = t.charAt(i);
}
}
return true;
}
}

LeetCode-11-6的更多相关文章

  1. LeetCode 11. Container With Most Water (装最多水的容器)

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai).  ...

  2. [LeetCode] 11. Container With Most Water 装最多水的容器

    Given n non-negative integers a1, a2, ..., an , where each represents a point at coordinate (i, ai). ...

  3. LeetCode 11 水池蓄水问题

    今天给大家分享的是一道LeetCode中等难度的题,难度不大,但是解法蛮有意思.我们一起来看题目: Link Container With Most Water Difficulty Medium 题 ...

  4. Java实现 LeetCode 11 盛最多水的容器

    11. 盛最多水的容器 给定 n 个非负整数 a1,a2,-,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) ...

  5. 如何装最多的水? — leetcode 11. Container With Most Water

    炎炎夏日,还是呆在空调房里切切题吧. Container With Most Water,题意其实有点噱头,简化下就是,给一个数组,恩,就叫 height 吧,从中任选两项 i 和 j(i <= ...

  6. LeetCode 11

    Container With Most Water Given n non-negative integers a1, a2, ..., an, where each represents a poi ...

  7. LeetCode——11. Container With Most Water

    一.题目链接:https://leetcode.com/problems/container-with-most-water/ 二.题目大意: 给定n个非负整数a1,a2....an:其中每一个整数对 ...

  8. LeetCode 11 Container With Most Water(分支​判断问题)

    题目链接 https://leetcode.com/problems/container-with-most-water/?tab=Description   Problem: 已知n条垂直于x轴的线 ...

  9. LeetCode(11)题解: Container With Most Water

    https://leetcode.com/problems/container-with-most-water/ 题目: Given n non-negative integers a1, a2, . ...

  10. leetcode 11. Container With Most Water 、42. Trapping Rain Water 、238. Product of Array Except Self 、407. Trapping Rain Water II

    11. Container With Most Water https://www.cnblogs.com/grandyang/p/4455109.html 用双指针向中间滑动,较小的高度就作为当前情 ...

随机推荐

  1. SQl查询数据库表名、表的列名、数据类型、主键

    1.获取所有数据库名:     2.Select Name FROM Master..SysDatabases order by Name   3.  4.2.获取所有表名:   5.   (1)  ...

  2. nginx源码学习_数据结构(ngx_str_t)

    nginx中关于字符串的数据结构位于src/core/ngx_string.c和src/core/ngx_string.h中 先来看一下数据结构: typedef struct { size_t le ...

  3. Tomcat闲聊第二话

    windows下安装Tomcat可以直接下载Installer,需要注意的是,先确保安装了Java虚拟机. 注:默认安装路径为 C:\Program Files\Apache Software Fou ...

  4. spring boot 打包报错

    [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.3.0.RELEASE:repac ...

  5. UVa 12563 劲歌金曲 刘汝佳第二版例题9-5;

    Problem J Jin Ge Jin Qu [h]ao (If you smiled when you see the title, this problem is for you ^_^) Fo ...

  6. 放苹果(整数划分变形题 水)poj1664

    问题:把M个相同的苹果放在N个相同的盘子里.同意有的盘子空着不放,问共同拥有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 例子 : 1 7 3 ---------------8 ...

  7. oracle数据库中VARCHAR2(50 CHAR) 和VARCHAR2(50) 有啥区别?

    VARCHAR2(50 char)这种类型的字段最多放50个字符,不够50个用空格填充:而VARCHAR2(50)最大允许存放50个字符,但是不足50个也不用空格填充.varchar2是变长字符串,与 ...

  8. error LNK2019: unresolved external symbol 的一个解决方法

    在VS2010中使用opencv时,有时会出现如下类似的连接错误: 解决方法:根据头文件手动指定lib文件 #ifdef _DEBUG #pragma comment(lib,"*.lib& ...

  9. Java凝视分类

    Java凝视分类 1.单行凝视    //打印结果    System.out.println("结果是:"+result); 2.多行凝视    /**     * @autho ...

  10. jodis遇到的问题

    1. Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper java找jar ...