二分查找
在递增或者递减的一列数中,依次用目前区间最中间的数跟target比较,根据比较结果更新区间,再循环这个过程,知道找到最中间数=target或区间长度为0为止
Tag
12 篇文章
在递增或者递减的一列数中,依次用目前区间最中间的数跟target比较,根据比较结果更新区间,再循环这个过程,知道找到最中间数=target或区间长度为0为止
在学动态规划之前,要先学回溯算法,作为动态规划的基础
<u堆(heap)</u是一种满足特定条件的完全二叉树,主要可分为两种类型
二叉树(binary tree)是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、…
<u分治(divide and conquer)</u,全称分而治之,是一种非常重要且常见的算法策略。分治通常基于递归实现,包括“分”和“治”两个步骤
哈希表是根据关键码的值而直接进行访问的数据结构
用变量标记窗口的右区间,右区间每次向右挪动一位,验证左区间能否缩小,如果可以就缩小,然后记录此时的长度,维护一个最小长度变量就可以了
针对代码,逐行从上到下计算代码一共的操作次数即可。此操作数量中的各种系数、常数项都可以忽略。根据此原则,可以总结出以下计数简化技巧
给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和
如果要在数组中删除符合某特定条件的元素,暴力解法是用一层循环遍历数组,如果符合条件,就开一层循环把后面的元素全部往前移动,然后继续遍历。时间复杂度是O(n^2)
在我使用的gdb版本(GNU gdb (GDB) 15.2)中,无需额外配置即可启用
这次主要掌握C++中栈的相关操作 在C++中,栈的最常用操作如下表