随笔分类 -  时间复杂度有要求的题目

摘要:题目: 解答: 笨比O(N)算法,先用unordered_set去重,O(N)。再用小顶堆,所有元素push一遍,维持其size不大于3,这部分O(N*Log4)=O(N)。加起来还是O(N)。当然这只是理论时间复杂度。另外空间复杂度O(N)。 class Solution { public: in 阅读全文
posted @ 2020-07-19 03:25 NeoZy 阅读(106) 评论(0) 推荐(0)
摘要:题目: 给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。 示例 1: 输入: nums = [1, 5, 1, 1, 6, 4]输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6]示例 2: 输入: n 阅读全文
posted @ 2020-02-25 12:04 NeoZy 阅读(368) 评论(0) 推荐(0)
摘要:题目: 链接:https://leetcode-cn.com/problems/word-ladder-ii/ 给定两个单词(beginWord 和 endWord)和一个字典 wordList,找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则: 每次转换只能改 阅读全文
posted @ 2020-02-23 18:10 NeoZy 阅读(239) 评论(0) 推荐(0)
摘要:Q: 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 A: 注意一点,题目说的序列长度是有几个连续+1的数。 然后题目 阅读全文
posted @ 2020-02-18 13:09 NeoZy 阅读(174) 评论(0) 推荐(0)
摘要:问题: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明: 你 阅读全文
posted @ 2020-02-17 13:09 NeoZy 阅读(370) 评论(0) 推荐(0)
摘要:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 输出: 阅读全文
posted @ 2019-05-03 02:33 NeoZy 阅读(106) 评论(0) 推荐(0)
摘要:二分法,先对行二分找出结果可能存在的行,再对这一行二分查找。O(Log m+Log n),m、n分别为矩阵的高和宽。 1 class Solution { 2 public: 3 bool searchMatrix(vector<vector<int>>& matrix, int target) { 阅读全文
posted @ 2019-05-02 02:49 NeoZy 阅读(163) 评论(0) 推荐(0)