二分查找
在递增或者递减的一列数中,依次用目前区间最中间的数跟target比较,根据比较结果更新区间,再循环这个过程,知道找到最中间数=target或区间长度为0为止
Tag
20 篇文章
在递增或者递减的一列数中,依次用目前区间最中间的数跟target比较,根据比较结果更新区间,再循环这个过程,知道找到最中间数=target或区间长度为0为止
给定一个含有 n 个正整数的数组和一个正整数 target 。…
在学动态规划之前,要先学回溯算法,作为动态规划的基础
<u堆(heap)</u是一种满足特定条件的完全二叉树,主要可分为两种类型
二叉树(binary tree)是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、…
题意:反转一个单链表。 示例: 输入: 1-2-3-4-5-NULL 输出: 5-4-3-2-1-NULL
<u分治(divide and conquer)</u,全称分而治之,是一种非常重要且常见的算法策略。分治通常基于递归实现,包括“分”和“治”两个步骤
给你一个数组arr一个权重值k。有一个数m,m的值是1......n,然后针对这个数组你可以进行n-m次删除某个元素的操作,也可以不删除,每删除一个元素需要花费k,针对删除后的新数组,…
哈希表是根据关键码的值而直接进行访问的数据结构
用变量标记窗口的右区间,右区间每次向右挪动一位,验证左区间能否缩小,如果可以就缩小,然后记录此时的长度,维护一个最小长度变量就可以了
针对代码,逐行从上到下计算代码一共的操作次数即可。此操作数量中的各种系数、常数项都可以忽略。根据此原则,可以总结出以下计数简化技巧
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。…
给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。…
给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和
如果要在数组中删除符合某特定条件的元素,暴力解法是用一层循环遍历数组,如果符合条件,就开一层循环把后面的元素全部往前移动,然后继续遍历。时间复杂度是O(n^2)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法
在我使用的gdb版本(GNU gdb (GDB) 15.2)中,无需额外配置即可启用
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。…
这次主要掌握C++中栈的相关操作 在C++中,栈的最常用操作如下表
刷算法计划 —— 来自个人笔记库