0%

单词接龙

问题描述


给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:

  • 1.每次转换只能改变一个字母。
  • 2.转换过程中的中间单词必须是字典中的单词。

说明:

  • 1.如果不存在这样的转换序列,返回 0。
  • 2.所有单词具有相同的长度。
  • 3.所有单词只由小写字母组成。
  • 4.字典中不存在重复的单词。
  • 5.你可以假设 beginWord 和 endWord 是非空的,且二者不相同。

BFS

思路分析

阅读全文 »

直线上最多的点数

问题描述


给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。


暴力法

思路分析


三个点 (x1,y1),(x2,y2),(x3,y3)是否在一条直线上的判定条件是:
$\frac{(y2-y1)}{(x2-x1)}$ = $\frac{(y3-y1)}{(x3-x1)}$

特殊考虑到 x2 == x1, y2 == y1的情况

阅读全文 »

最长有效括号

问题描述


给定一个只包含 ‘(‘ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。

示例 1:
输入: “(()”
输出: 2
解释: 最长有效括号子串为 “()”

示例 2:
输入: “)()())”
输出: 4
解释: 最长有效括号子串为 “()()”


思路分析


阅读全文 »

鸡蛋掉落

问题描述


你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。

每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。

你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。

每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X <= N)。

你的目标是确切地知道 F 的值是多少。

无论 F 的初始值如何,你确定 F 的值的最小移动次数是多少?


阅读全文 »

寻找两个有序数组的中位数

问题描述


给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。

你可以假设 nums1 和 nums2 不会同时为空。


归并法

思路分析


阅读全文 »