首先先说一点:二分查找法不仅仅可以用在有序数组里元素的查找上。如果是一个问题,待查找的数是整数,且知道范围,大概就可以通过逐步排查,缩小问题的规模的方式找到,这种算法也是二分查找算法。 我们平常写程序,定位问题其实通常也用的是这个思路。在适当的地方做一些代码输出,逐步缩小范围,最后找到了有 bug ...
分类:
其他好文 时间:
2020-06-19 00:59:23
阅读次数:
53
E. Necklace Assembly 题目大意: 给定一个长度为n的字符串s,和一个数k,从这个字符串s中选择一些字符组成一个周期为k的因子的最大字符串,并输出这个最大字符串的字符数(1<=n,k<=2000),有t组测试数据并且这t组测试数据的n的总数和不超过2000 (1<=t<=100)。 ...
分类:
其他好文 时间:
2020-06-18 19:32:25
阅读次数:
74
二分查找 \(x+x^2=x(x+1)=h\) 二分查找求解。 x下界为0, 上界不好找(如果设为h, java中long类型溢出)。我们转化问题为查找x+1,下界为1, 上界为 \(\lceil \sqrt{h} \rceil\) 。 import java.util.*; public clas ...
分类:
其他好文 时间:
2020-06-16 20:40:59
阅读次数:
75
题目链接 这题我开始一直在想如何在数组上dp操作搜索区间, 很蠢, 实际上用二分查找的方法可以很快的解决 首先我们通过一个函数判断第x天是否符合题意, 如果x天可以做出m束花, 那么大于m的天数必然可以. 从这里便可以看出其符合二分搜索的特性 : 答案在一个固定区间内; 可能查找一个符合条件的值不是 ...
分类:
其他好文 时间:
2020-06-14 16:45:45
阅读次数:
58
1030 完美数列 (25分) 二分查找常用函数: lower_bound() 函数用于在指定区域内查找不小于目标值的第一个元素 upper_bound() 函数定义在头文件中,用于在指定范围内查找大于目标值的第一个元素 第一次写的代码,测试点4没过 下面举个例子,如数组:1,2,3,4,5,6,7 ...
分类:
其他好文 时间:
2020-06-13 10:54:58
阅读次数:
59
不积跬步,无以至千里;不积小流,无以成江海。 前言 内容主要是个人学习使用,题目分类以及部分参考资料来自于CyC的博客,非常感谢大佬,题目来源于LeetCode,非常感谢本站支持。 二分查找 二分查找又称折半查找,顾名思义就是每查找比较一次,就会去掉一半的不匹配项,重复执行此步骤直到找到目标元素或者 ...
分类:
编程语言 时间:
2020-06-11 01:02:38
阅读次数:
72
1 二叉树 二叉树的每个节点都包含一个项用来存储数据,以及两个指向其他子节点的指针用来链接结构;是一种二分查找的树形结构; 当数据按顺序排列时,使用二叉树从中间的节点开始查找,每次都能排除一半的数据量,效率较高;只是编程较为复杂。 不过当二叉树子树的排列不平衡时,查找效率挺低的;可能还不如链表实用; ...
分类:
其他好文 时间:
2020-06-09 20:45:55
阅读次数:
64
方法一:二分查找。 class Solution(object): # 二分查找 def kthSmallest(self, matrix, k): """ :type matrix: List[List[int]] :type k: int :rtype: int """ n = len(matr ...
分类:
其他好文 时间:
2020-06-08 14:43:04
阅读次数:
48
方法一:二分查找。 class Solution(object): # 二分法 def countNegatives(self, grid): """ :type grid: List[List[int]] :rtype: int """ ans = 0 for nums in grid: if n ...
分类:
其他好文 时间:
2020-06-08 14:39:50
阅读次数:
58
题意:即nums长为n+1,里面的元素值范围:[1,n],有且仅有一个重复值,但该值可以重复多次,所以[1,n]有的数可以不在nums里。 方法一:二分查找。 class Solution(object): # 二分查找 def findDuplicate(self, nums): low = 1 ...
分类:
其他好文 时间:
2020-06-08 14:17:49
阅读次数:
49