C++算法基础
用c++实现基础算法题
奋斗的小方
菜鸡
展开
-
239. 滑动窗口最大值
单调队列解决区间求极值的问题,单调队列永远在维护尽可能是最大的值,那些肯定不是最大的值在push的过程中就已经被弹出了。原创 2023-08-07 14:43:37 · 249 阅读 · 0 评论 -
滑动窗口实现长度最小的子数组
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]给定一个含有 n 个正整数的数组和一个正整数 target。输入:target = 4, nums = [1,4,4]解释:子数组 [4,3] 是该条件下的长度最小的子数组。原创 2023-03-29 18:13:37 · 55 阅读 · 0 评论 -
双指针实现有序数组的平方
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。平方后的大的元素只会出现在原数组的两端(考虑到负数的可能),所以设置两个指针分别指向数组两端,逐一进行比较并选择大的元素放进新数组中。输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。解释: 2 不存在 nums 中因此返回 -1。原创 2023-03-29 17:34:12 · 99 阅读 · 0 评论 -
快慢指针实现数组移除元素
用两层循环,第一层用于寻找指定的元素,第二层用于移动后面的元素向前覆盖。数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能。快指针用于更新元素、慢指针用于更新数组下标。原创 2023-03-24 15:11:06 · 187 阅读 · 0 评论 -
C++二分法查找
用于查找的内容逻辑上来说是需要有序的查找的数量只能是一个,而不是多个。原创 2023-03-24 11:38:15 · 634 阅读 · 0 评论