一:解题思路 这个题目是二分搜索的一个变体。Time:log(n),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: int findMin(vector<int>& nums) { int low = 0; int hig ...
分类:
编程语言 时间:
2020-04-20 13:47:31
阅读次数:
62
一:解题思路 采用二分搜索的思想来做。 Time:O(log(n)),Space:O(1) 二:完整代码示例 (C++版和Java版) C++: class Solution { public: int findPeakElement(vector<int>& nums) { if (nums.si ...
分类:
编程语言 时间:
2020-04-15 21:14:01
阅读次数:
80
训练赛上一题,当时没做出来,Orz太弱了 The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c ...
分类:
其他好文 时间:
2020-04-06 19:02:19
阅读次数:
77
稳定性排序:稳定性排序是指相等的元素相对位置不会发生改变。 以下介绍一系列排序算法:以非降序排列为序; 选择排序:遍历i,求[i,n)中的最小值,与A[i]交换; 时间复杂度O(N^2) void selection_sort(vector<int>& num) { int len = num.si ...
分类:
编程语言 时间:
2020-04-05 11:51:03
阅读次数:
70
[TOC] 集合 Set Set是一种新的数据结构,类似于数组,但是不能添加重复的元素,基于Set集合的这个特性,我们可以使用Set集合进行客户统计和词汇统计等,集合中常用的方法如下: 基于二分搜索树实现集合 现在让我们基于我们上章实现的二分搜索树,来实现集合中的常用操作,若你对二分搜索树还不了解, ...
分类:
其他好文 时间:
2020-04-05 09:21:56
阅读次数:
57
[TOC] 什么是二叉树? 在实现二分搜索树之前,我们先思考一下,为什么要有树这种数据结构呢?我们通过企业的组织机构、文件存储、数据库索引等这些常见的应用会发现,将数据使用树结构存储后,会出奇的高效,树结构本身是一种天然的组织结构。常见的树结构有:二分搜索树、平衡二叉树(常见的平衡二叉树有AVL和红 ...
分类:
其他好文 时间:
2020-04-04 09:57:45
阅读次数:
65
leeetcode 33. Search in Rotated Sorted Array leetcode 81 leetcode 153. Find Minimum in Rotated Sorted Array 这几道的相似处是:都是部分有序的数组,可以用二分搜索来做。最重要的是判断到底是左区间 ...
分类:
其他好文 时间:
2020-04-04 09:16:41
阅读次数:
75
1. 定义 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 拓展:二分搜索 2. 框架 1 void BST(TreeNode root, int ...
分类:
其他好文 时间:
2020-04-04 00:19:03
阅读次数:
78
https://leetcode.com/problems/search-in-rotated-sorted-array/ 解法一:本来有序的数组经过rotate后,分成了两部分。以最大值为分割点。通过二分搜索找最大值。然后在[0 , maxi] , 和[maxi + 1 , nums.size() ...
分类:
其他好文 时间:
2020-04-04 00:17:58
阅读次数:
61
题解:使用二分搜索,在输出小数问题上,一般都会指定允许的误差范围或者是输出中小数点后面的位数。因此在使用二分搜索法时,有必要设置合理的结束条件来满足精度的要求。 设定循环次数作为终止条件,1次循环可以把区间的范围缩小一半,100次的循环则可以达到10^(-30)的精度范围,基本上是没有问题的,也可以 ...
分类:
其他好文 时间:
2020-03-30 23:45:24
阅读次数:
118