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
#归并排序 思路:(分而治之的思想) 1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 2.设定两个指针,最初位置分别为两个已经排序序列的起始位置; 3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置; 4.重复步骤 3 直到某一指针达到序列 ...
分类:
编程语言 时间:
2021-04-15 12:38:31
阅读次数:
0
315. 计算右侧小于当前元素的个数 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例: 输入:nums = [5,2,6,1] 输出:[2,1,1,0] 解释: ...
分类:
编程语言 时间:
2021-04-14 11:58:17
阅读次数:
0
比如外存中有100G的字符串文件,1G的内存,对字符串进行排序操作。 1.首先将100G的内容分成若干个小部分,每个部分不超过500MB。分别读取这些小部分进行排序,然后写入到外存中。这样就得到了若干个已经排好序的小部分。 2.多路归并排序,(相对二路归并而言)。对于k个已经排好序的小部分,每次取出 ...
分类:
编程语言 时间:
2021-04-13 12:30: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
LeetCode148 排序链表 题目 给定链表的头结点head,返回排序后的链表,按照由小到大的顺序。 案例1 输入:head = [4,2,1,3] 输出:[1,2,3,4] 分析 使用归并排序,先找出中间节点(快慢指针:快指针每次走两步,慢指针每次走一步,当快指针走到链表最后,慢指针所在的位置 ...
分类:
编程语言 时间:
2021-04-10 13:34:31
阅读次数:
0
归并排序介绍 一种分而治之思想 归并排序步骤 从下往上的归并排序(自下而上的迭代) 从上往下的归并排序(自上而下的递归):它与"从下往上"在排序上是反方向的。它基本包括3步: ① 分解 -- 将当前区间一分为二,即求分裂点 mid = (low + high)/2; ② 求解 -- 递归地对两个子区 ...
分类:
编程语言 时间:
2021-04-10 13:21:25
阅读次数:
0