Lunski's Clutter

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

0%

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


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

Paragraphs let readers get to the point faster.

Audience let us check what are audience really needs.

Read more »

Namedtuple生成可以使用名字來訪問元素內容的tuple子類,比class更省記憶體。

Read more »