二分查找 一、引子 设想一个猜数字游戏,A从给定的区间中选择一个数字,B要猜这个数,如果B猜的数大了,就高速B猜大了,如果B猜的数小于A选择的数,就告诉B猜小了。理论上经过有限次的猜数后,B一定可以猜到这个数。 二、算法思想 通过上述猜数字游戏可以发现B每次猜数字时,其实都对给定的区间进行了压缩,最 ...
分类:
编程语言 时间:
2021-06-02 19:20:27
阅读次数:
0
#include <stdio.h> const int N=3; int main() { int a[N] = {1, 2, 3}; int i; printf("通过数组名和下标直接访问数组元素:\n"); for(i=0; i<N; i++) printf("%d: %d\n", &a[i] ...
分类:
其他好文 时间:
2021-06-02 13:37:21
阅读次数:
0
#include <stdio.h> const int N=3; int main() { int a[N] = {1, 2, 3}; int i; printf("通过数组名和下标直接访问数组元素:\n"); for(i=0; i<N; i++) printf("%d: %d\n", &a[i] ...
分类:
其他好文 时间:
2021-06-02 13:32:46
阅读次数:
0
1,二分查找 LCP 12. 小张刷题计划 1011. 在 D 天内送达包裹的能力 参考解题:c++/python3 全是套路 标准二分查找三大框架之一 Binary Search 1,写出判定一个值是否可以满足条件的函数g 2,找出左右边界(最小的可能值L,与最大的可能值R) 3,while L< ...
分类:
其他好文 时间:
2021-04-27 14:18:51
阅读次数:
0
思路: 通过把二维矩阵转化为一维来求解,我们的一维并不是对矩阵处理,一维数组是一列的元素和。 首先我们定义上边界,上边界从第一行开始,然后创建一个数组,每一个上边界创建一次数组,然后再定义一个下边界,从上边界的位置开始。然后求解上下边界组成的矩阵中第0列到最后一列的每一列和。 因为矩阵还需要有左右边 ...
分类:
其他好文 时间:
2021-04-23 12:08:39
阅读次数:
0
二分查找的基本框架 int binarySearch(int[] nums, int target) { int left = 0, right = ...; while(...) { int mid = left + (right - left) / 2; if (nums[mid] == tar ...
分类:
其他好文 时间:
2021-04-22 15:54:34
阅读次数:
0
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它可以是一棵空树,也可以是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜 ...
分类:
其他好文 时间:
2021-04-21 12:31:46
阅读次数:
0
P 问题描述:可以在多项式时间复杂度内求解; 举例:二分查找(O(logn))、快排(O(nlogn)) NP 问题描述:可以在多项式时间复杂度内验证是否是可行解的问题;有指数时间复杂度的求解方法;这类问题可以用启发式算法求解,但只能得到一个相对的最优解; 举例:所有P问题(可以在多项式时间复杂度内 ...
分类:
其他好文 时间:
2021-04-13 12:23:13
阅读次数:
0
01、什么是数组 数组是相同数据类型的有序集合 数组的描述是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数据元素,每个数组元素可以通过一个下标来访问 02、数组的声明和创建 首先必须声明数组变量,才能在数组中使用数组,数组语法: detaType[] arrayRe ...
分类:
编程语言 时间:
2021-04-12 12:19:15
阅读次数:
0
class Solution { public: int searchInsert(vector<int> &nums, int target) { int low = 0; int high = nums.size() - 1; //为了严谨 <= while (low <= high) { in ...
分类:
其他好文 时间:
2021-04-07 10:57:40
阅读次数:
0