摘要:
一:解题思路 Time:O(n),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: ListNode* deleteDuplicates(ListNode* head) { ListNode* dummy = new Lis 阅读全文
posted @ 2020-04-08 21:56
repinkply
阅读(181)
评论(0)
推荐(0)
摘要:
一:解题思路 利用一个辅助哈希表来存储,中序遍历的元素和对于的下标。Time:O(n),Space:O(n) 二:完整代码示例 (C++版和Java版) C++: class Solution { private: TreeNode* buildTree(vector<int>& preorder, 阅读全文
posted @ 2020-04-08 21:25
repinkply
阅读(122)
评论(0)
推荐(0)
摘要:
一:解题思路 这道题的最简单的做法是,将数组从大到小进行排序,然后取出第k-1的那个元素。Time:O(n*log(n)),Space:O(1) 我们来写下面2种做法。 方法一:我们来维护一个top k的最小堆,遍历一次数组,将数组中的元素加入数组中,最后堆定元素就是第K大的元素。Time:O(n* 阅读全文
posted @ 2020-04-08 20:40
repinkply
阅读(157)
评论(0)
推荐(0)
摘要:
一:解题思路 二:完整代码示例 (C++版和Java版) C++: class Solution { private: vector<int> nums; vector<int> orignalNums; public: Solution(vector<int>& nums) { this->num 阅读全文
posted @ 2020-04-08 17:55
repinkply
阅读(128)
评论(0)
推荐(0)
摘要:
一:解题思路 在C++和Java中,使用最小堆或者最大堆,用一个优先队列即可。构造函数:Time:O(n*log(k)),添加函数:Time:O(log(k)) 二:完整代码示例 (C++、Java、Python) C++: class KthLargest { private: priority_ 阅读全文
posted @ 2020-04-08 16:51
repinkply
阅读(162)
评论(0)
推荐(0)
摘要:
一:解题思路 这个题目如果采用之前单身数字那个题目的方法来做,时间复杂度为O(n)。但题目的要求是O(log(n)),所以不能采用哪种方法。 这个题目可以采用二分搜索的思想来做,对于数组中的任意一个数字,1.要么等于它左边的数字,2.要么等于它右边的数字,3.要么即不等于左边的数字,又不等于它右边的 阅读全文
posted @ 2020-04-08 16:04
repinkply
阅读(143)
评论(0)
推荐(0)

浙公网安备 33010602011771号