当前位置: 首页> 汽车> 维修 > 二手车出口外贸流程_普像工业设计网站_2023广州疫情最新消息今天_品牌如何推广

二手车出口外贸流程_普像工业设计网站_2023广州疫情最新消息今天_品牌如何推广

时间:2025/8/23 19:54:42来源:https://blog.csdn.net/2301_81454749/article/details/142795368 浏览次数: 0次
二手车出口外贸流程_普像工业设计网站_2023广州疫情最新消息今天_品牌如何推广

在这里插入图片描述

双指针系列(二)——对撞指针

  • (一)盛水最多的容器
    • (一)题目分析
    • (二)代码展示
  • 二、有效的三角形个数
    • (一)题目分析
    • (二)代码展示
  • 三、查找总价格为目标值的两个商品
    • (一)题目分析
    • (二)代码展示
  • 四、总结

(一)盛水最多的容器

点击跳转
在这里插入图片描述

(一)题目分析

设置两个指针分别指向最左边和最右边,首先记录一个最大盛水量 max = 0,每次舍弃掉两个指针中较小的那一个(舍弃的指针和中间的每一个组成的容器都小于当前值,因此可以舍弃),这个过程中一定要维护最大值max。
在这里插入图片描述

(二)代码展示

class Solution {
public:int maxArea(vector<int>& height) {int left = 0, right = height.size() - 1;int max = 0;while (left < right) {int min_side = height[left] < height[right] ? height[left] : height[right];int temp = (right - left) * min_side;if (temp > max) max = temp;min_side == height[left] ? left++ : right--;}return max;}
};

二、有效的三角形个数

点击跳转
在这里插入图片描述

(一)题目分析

判断是否可以组成三角形,可以直接判断最小的两条边是否大于第三边。因此,我们仅仅需要将数组排序,依次固定数组中的最大值,观察它可以组成三角形。
在判断另外两条边时,也只需要创建一组对撞指针,找到符合要求的目标值。

(二)代码展示

class Solution {
public:int triangleNumber(vector<int>& nums) {int cur = nums.size() - 1, ret = 0;sort(nums.begin(), nums.end());while (cur > 1) {int left = 0, right = cur - 1;while (left < right) {if(nums[left] + nums[right] > nums[cur]) {ret += right - left;right--;}else{left++;}}cur--;}return ret;}
};

三、查找总价格为目标值的两个商品

点击跳转
在这里插入图片描述

(一)题目分析

这道题相比上到题目更加简便,用对撞指针查找目标值即可,有一个返回值的小技巧,使用initalizer_list 对象做返回值,不同在单调创建vector对象。
在这里插入图片描述

(二)代码展示

class Solution {
public:vector<int> twoSum(vector<int>& price, int target) {int left = 0, right = price.size() - 1;while(left < right){if(price[left] + price[right] < target) left++;else if(price[left] + price[right] > target) right--;else return {price[left], price[right]};}return {-1, -1};}
};

四、总结

想要在一段有序的数组区间中查询目标值,可以采用对撞指针。亦或者在盛水最大的容器中,有一种单调性在里边,也可以采取对撞指针。

关键字:二手车出口外贸流程_普像工业设计网站_2023广州疫情最新消息今天_品牌如何推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: