摘要:
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 例如, 给定数组 [1,1,1,2,2,3] , 和 k = 2,返回 [1,2]。 注意: 你可以假设给定的 k 总是合理的,1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(n log n) , n 是数组的 阅读全文
摘要:
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意:不能使用代码库中的排序函数来解决这道题。 示例: 进阶: 一个直观的解决方案是使用计数排序的两 阅读全文
摘要:
给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: 一开始只写了向四周搜索的递归,但是哪有那么简单。。由于正确的路径每个方向都有可能,所以需要 阅读全文
摘要:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 回溯算法,递归的时候只能将后面的元素进栈。 阅读全文
摘要:
给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 多了个visited的回溯。 有人用交换地方法解了这题,感觉很神奇,思路就是交换,递归,再交换回来,如此这样迭代下去。时空复杂度会小一点。 阅读全文
摘要:
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: 思路就是回溯算法。刚接触回溯算法还是有点复杂的,递归里各种条件判断搞得头晕。还有就是C的百万参数。。。 阅读全文