LEETCODE 1055. Shortest Way to Form String 解题思路分析

题目大意:

形成字符串的最短路径

对于任何字符串,我们可以通过删除其中一些字符(也可能不删除)来构造该字符串的子序列。

给定源字符串 source 和目标字符串 target,找出源字符串中能通过串联形成目标字符串的子序列的最小数量。如果无法通过串联源字符串中的子序列来构造目标字符串,则返回 -1

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 875. Koko Eating Bananas 解题思路分析

题目大意:

爱吃香蕉的珂珂

珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。

珂珂可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。  

珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。

返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。

继续阅读
发表在 leetcode | 标签为 , , | 留下评论

LEETCODE 390. Elimination Game 解题思路分析

题目大意:

消除游戏

给定一个从1 到 n 排序的整数列表。
首先,从左到右,从第一个数字开始,每隔一个数字进行删除,直到列表的末尾。
第二步,在剩下的数字中,从右到左,从倒数第一个数字开始,每隔一个数字进行删除,直到列表开头。
我们不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。
返回长度为 n 的列表中,最后剩下的数字。

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 406. Queue Reconstruction by Height 解题思路分析

题目大意:

根据身高重建队列

假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。

注意:
总人数少于1100人。

继续阅读
发表在 leetcode | 标签为 , , , , | 一条评论

LEETCODE 518. Coin Change 2 解题思路分析

题目大意:

零钱兑换 II

给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 

继续阅读
发表在 leetcode | 标签为 , , , , | 留下评论

LEETCODE 60. Permutation Sequence 解题思路分析

题目大意:

第k个排列

给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。

按大小顺序列出所有排列情况,并一一标记,当 = 3 时, 所有排列如下:

  1. "123"
  2. "132"
  3. "213"
  4. "231"
  5. "312"
  6. "321"

给定 n 和 k,返回第 k 个排列。

说明:

  • 给定 n 的范围是 [1, 9]。
  • 给定 的范围是[1,  n!]。
继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 67. Add Binary 解题思路分析

题目大意:

二进制求和

给定两个二进制字符串,返回他们的和(用二进制表示)。

输入为非空字符串且只包含数字 1 和 0

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 792. Number of Matching Subsequences 解题思路分析

题目大意:

匹配子序列的单词数

给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数。

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 658. Find K Closest Elements 解题思路分析

题目大意:

找到 K 个最接近的元素

给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论

LEETCODE 1087. Brace Expansion 解题思路分析

题目大意:

我们用一个特殊的字符串 S 来表示一份单词列表,之所以能展开成为一个列表,是因为这个字符串 S 中存在一个叫做「选项」的概念:

单词中的每个字母可能只有一个选项或存在多个备选项。如果只有一个选项,那么该字母按原样表示。

如果存在多个选项,就会以花括号包裹来表示这些选项(使它们与其他字母分隔开),例如 “{a,b,c}” 表示 [“a”, “b”, “c”]。

例子:”{a,b,c}d{e,f}” 可以表示单词列表 [“ade”, “adf”, “bde”, “bdf”, “cde”, “cdf”]。

请你按字典顺序,返回所有以这种方式形成的单词。

继续阅读
发表在 leetcode | 标签为 , , , | 留下评论