leetcode contest 53 solution

本次题解包括

  • 691. Stickers to Spell Word
  • 693. Binary Number with Alternating Bits
  • 694. Number of Distinct Islands
  • 695. Max Area of Island

691. Stickers to Spell Word

We are given N different types of stickers. Each sticker has a lowercase English word on it.

You would like to spell out the given target string by cutting individual letters from your collection of stickers and rearranging them.

You can use each sticker more than once if you want, and you have infinite quantities of each sticker.

What is the minimum number of stickers that you need to spell out the target? If the task is impossible, return -1.

Example 1:

Input:

Output:

Explanation:

Example 2:

Input:

Output:

Explanation:

Note:

  • stickers has length in the range [1, 50].
  • stickers consists of lowercase English words (without apostrophes).
  • target has length in the range [1, 15], and consists of lowercase English letters.
  • In all test cases, all words were chosen randomly from the 1000 most common US English words, and the target was chosen as a concatenation of two random words.
  • The time limit may be more challenging than usual. It is expected that a 50 sticker test case can be solved within 35ms on average.

题目地址:leetcode Stickers to Spell Word

题目大意:给定n个stickers,每个stickers可以使用无数次。现在要将stickers拼成target(就是拆分stickers中的字母来凑成target),求用最少的使用次数(使用同一个sticker两次次数算2)使得stickers可以组成target。

思路:

这题对时间要求很高。

要注意剪枝。很重要的一点就是只保留target的字符,然后去除被包含的所有stickers.

比如target为abc,stickers=[‘afg’,’abf’]只保留stickers=[‘a’,’ab’],第一个被第二个包含,因此stickers=[‘ab’],这样能保证结果不差,而需要搜索的空间大大减少。

然后BFS即可。

python BFS

DFS + 记忆化搜索超时了。。

 

 


693. Binary Number with Alternating Bits

Given a positive integer, check whether it has alternating bits: namely, if two adjacent bits will always have different values.

Example 1:

Example 2:

Example 3:

Example 4:

题目地址:leetcode Binary Number with Alternating Bits

题目大意:给定一个数字,判断其是否1和0交替出现

思路

方法一

直接移位判断

方法二:

位运算,如果一个数是交替出现的,那么t = n ^ (n >> 1)必全部为1. 因此 如果(t + 1) & t为0,那么说明为交替出现。

 

 


 

695. Max Area of Island

Given a non-empty 2D array grid of 0’s and 1’s, an island is a group of 1‘s (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water.

Find the maximum area of an island in the given 2D array. (If there is no island, the maximum area is 0.)

Example 1:

Given the above grid, return 6. Note the answer is not 11, because the island must be connected 4-directionally.

Example 2:

Given the above grid, return 0.

Note: The length of each dimension in the given grid does not exceed 50.

题目地址:leetcode Max Area of Island

题目大意:给你一个二维数组,小岛用1表示,求小岛的个数。

思路

dfs即可

 


 

694. Number of Distinct Islands

Given a non-empty 2D array grid of 0’s and 1’s, an island is a group of 1‘s (representing land) connected 4-directionally (horizontal or vertical.) You may assume all four edges of the grid are surrounded by water.

Count the number of distinct islands. An island is considered to be the same as another if and only if one island can be translated (and not rotated or reflected) to equal the other.

Example 1:

Given the above grid map, return 1.

Example 2:

Given the above grid map, return 3.

Notice that:

and

are considered different island shapes, because we do not consider reflection / rotation.

Note: The length of each dimension in the given grid does not exceed 50.

题目地址:leetcode Number of Distinct Islands

题目大意:和上面一题差不多。求独特的小岛的个数。独特的为不能经过平移得到的(即形状不同)

思路:

DFS,然后hash记录小岛形状。

平移的话可以记录各个小岛的每个点相对于该小岛的最左上角的偏移,然后最左上角移动到(0,0)

 

 

本文是leetcode如下的题解

  • 691. Stickers to Spell Word
  • 693. Binary Number with Alternating Bits
  • 694. Number of Distinct Islands
  • 695. Max Area of Island

更多题解可以查看: https://www.hrwhisper.me/leetcode-algorithm-solution/

 

 

本博客若无特殊说明则由 hrwhisper 原创发布
转载请点名出处:细语呢喃 > leetcode contest 53 solution
本文地址:https://www.hrwhisper.me/leetcode-contest-53-solution/

听说帅的人已经打赏了

Leetcode , . permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *