Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

Given n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of the line i is at (i, ai) and (i, 0). Find two lines, which, together with the x-axis forms a container, such that the container contains the most water.

Example 1:

1
2
3
Input: height = [1,8,6,2,5,4,8,3,7]
Output: 49
Explanation: The above vertical lines are represented by array [1,8,6,2,5,4,8,3,7]. In this case, the max area of water (blue section) the container can contain is 49.

Example 2:

1
2
Input: height = [1,1]
Output: 1

Example 3:

1
2
Input: height = [4,3,2,1,4]
Output: 16

Example 4:

1
2
Input: height = [1,2,1]
Output: 2
Read more »

Given two strings s and t, return true if s is a subsequence of t, or false otherwise.

A subsequence of a string is a new string that is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (i.e., “ace” is a subsequence of “abcde” while “aec” is not).

Example 1:

1
2
Input: s = "abc", t = "ahbgdc"
Output: true

Example 2:

1
2
Input: s = "axc", t = "ahbgdc"
Output: false
Read more »

Given a string s, return the longest palindromic substring in s.

Example 1:

1
2
3
Input: s = "babad"
Output: "bab"
Note: "aba" is also a valid answer.

Example 2:

1
2
Input: s = "cbbd"
Output: "bb"

Example 3:

1
2
Input: s = "a"
Output: "a"

Example 4:

1
2
Input: s = "ac"
Output: "a"
Read more »

Given a string s, find the length of the longest substring without repeating characters.

Example 1:

1
2
3
Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.

Example 2:

1
2
3
Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:

1
2
3
4
Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.

Example 4:

1
2
Input: s = ""
Output: 0
Read more »

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

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

You can return the answer in any order.

Example 1:

1
2
3
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

1
2
Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

1
2
3
4
5
6
Input: nums = [3,3], target = 6
Output: [0,1]
```

Constraints:

2 <= nums.length <= 103
-109 <= nums[i] <= 109
-109 <= target <= 109
Only one valid answer exists.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

<!-- more -->


經典第一題,思路是先把需要的值減去尋訪到的值,如果剩下的值有沒有在Array裡就回傳index。

1. 列index
for i, num in enumerate(nums):

2. 由數字找index
keys[remain]

3. 列表對應
keys[num] = i


# Java

Time: O(n), Space: O(n)

import java.util.*;
class Solution {
public static int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map=new HashMap<>();

    // There must have two number sum to target, {value: index}
    int[] result=new int[2]; 

    for(int i=0;i<nums.length;i++){
        if(map.containsKey(target-nums[i])){
            result[1]=i;
            result[0]=map.get(target-nums[i]);
            break;
        }
        map.put(nums[i],i);
    }
    return result;
}
public static void main(String[] args) {
    int [] nums = {2,7,11,15};
    System.out.println(Arrays.toString(twoSum(nums,9)));
}

}

1
2
# Python

Time: O(n), Space: O(1)

class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
keys = {}
for i, num in enumerate(nums):
remain = target - num
if remain in keys:
return [keys[remain], i]
else:
keys[num] = i

```

3Sum


如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)