题目
生成51~70之间所有偶数的一个随机排列。不用循环和if语句,找出其中比左右相邻的元素都大的元素。
思路:这题不用循环和if语就很难受,不用循环和if意味着不能手动遍历数组中的所有元素。
题目中”左右相邻“四个字引起了我的注意。左右相邻,在位置信息体现在原位置加1减1.如果对原数组的位置信息都减1,相当于左移一位;加1相当于右移一位。让原数组整体与左移、右移后的数组进行比较,比较的结果是布尔值。那我们只要找到同一位置两个布尔值均为1的位置就行啦。
所以首先生成50到70之间的偶数再随机排序。对排序后的向量,将其左移一位,右移一位,从而获得每个元素对应的左边和右边的元素,再用find()函数找到比左右元素都大的数.
代码:
运行结果: