顺序表ADT模板简单应用算法设计:在给定的有序顺序表中找出两个元素和为给定值的所有元素对

    科技2024-06-06  78

    问题描述

    目的:使用STL的vector模板设计并实现顺序表应用场合的一些简单算法设计。

    应用7:试设计一个算法,找出有序顺序表A(顺序表A中的数据元素的数据类型为int型)中两个元素和为给定值sum的所有元素对,并保持原有序表不变。

    参考函数原型:

    template<class ElemType> void Search_Pairs( vector<ElemType> &A, int sum );

    输入说明

    第一行:有序顺序表A的长度

    第二行:有序顺序表A的数据元素(数据元素之间以空格分隔)

    第三行:给定值sum

    输出说明

    第一行:顺序表A的遍历结果

    第二行开始:符合条件的元素对(每一对占一行,数据元素之间以","分割)

    如无符合条件的元素对,输出"NULL"

    输入范例

    6 1 3 5 7 9 15 10

    输出范例

    1 3 5 7 9 15 1,9 3,7

    思路分析

    比起双重遍历的暴力求解,可以参考一下如下的two points方法

    https://blog.csdn.net/Blackoutdragon/article/details/105742492

    错误提取

    分析: 如果是给的序列不一定是升序,是降序,那判定条件不就反了?如果有重复的元素,不会重复输出吗? 对策: 首先针对重复元素,移动元素之前先判定一下,防止下一个元素是重复的。

    通过了,好吧,确实只是重复的元素,OJ的样例太少了,比leetcode的难度低多了

    分析与总结

    leetcode还是要刷起来的,oj的题目是要习惯了这种模式,还是很简单的
    Processed: 0.016, SQL: 8