程序员面试金典——17.12整数对查找

Solution1:针对重复数字的情况题目未做明确说明,虽然此题仍能AC,但有的重复数字用了1次,有的用了超过1次,要求不清晰。重点是这种前后双指针的方法要会!!!

class FindPair {
public:int countPairs(vector<int> A, int n, int sum) {// write code hereif(n <= 1)return -1;sort(A.begin(), A.end());int pairs = 0, low = 0, high = n - 1;while(low < high) {if (A[low] + A[high] == sum) {//针对 3,3,3这种情况if(A[low] == A[high]) { int x = high - low + 1;pairs += (x * (x - 1)) / 2;break;}//下面是针对2,2,2,3,4,4,4,4此类情况int temp_low = A[low], temp_high = A[high], i = 1, j = 1;while(A[low + 1] == temp_low) {i++;low = low + 1;}while(high > low && A[high - 1] == temp_high) {j++;high = high - 1;}pairs += i * j;low++;high--;}else if (A[low] + A[high] < sum) low++;else if(A[low] + A[high] > sum)high--;}return pairs;}
};

程序员面试金典——17.12整数对查找相关推荐

  1. 程序员面试金典——18.12最大和子矩阵

    程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...

  2. 【重点】程序员面试金典——17.13树转链表

    程序员面试金典--17.13树转链表 在<剑指offer>上有一个类似的题目:https://blog.csdn.net/allenlzcoder/article/details/7961 ...

  3. 程序员面试金典——17.9词频统计

    程序员面试金典--17.9词频统计 Solution1:我的答案.利用了STL中的map或者unordered_map结构,因为unordered_map是基于哈希结构实现的,所以更好一点. clas ...

  4. 程序员面试金典——17.8最大连续数列和

    程序员面试金典--17.8最大连续数列和 Solution1:典型的动态规划题啊. 一遍过,哈哈哈 class MaxSum { public:int getMaxSum(vector<int& ...

  5. 程序员面试金典——17.6最小调整有序

    程序员面试金典--17.6最小调整有序 Solution1:我的答案.垃圾算法 class Rearrange { public:vector<int> findSegment(vecto ...

  6. 程序员面试金典——17.3阶乘尾零

    程序员面试金典--17.3阶乘尾零 Solution1:我的答案.没有更笨的方法了... class Factor { public:int getFactorSuffixZero(int n) {/ ...

  7. 程序员面试金典——17.5珠玑妙算

    程序员面试金典--17.5珠玑妙算 参考网址:https://www.nowcoder.com/profile/2708949/codeBookDetail?submissionId=13283364 ...

  8. 程序员面试金典——17.4无判断max

    程序员面试金典--17.4无判断max 参考网址: https://www.nowcoder.com/practice/b0a82250677a4fabb0bc41053fa05013?tpId=8& ...

  9. 程序员面试金典——17.1无缓存交换

    程序员面试金典--17.1无缓存交换 主要是利用异或性质~ 程序员面试金典--17.1无缓存交换 class Exchange { public:vector<int> exchangeA ...

最新文章

  1. 【STM32】SysTick定时器
  2. Oracle学习笔记:通过种子数据库设置dbid为指定值
  3. Unable to open /dev/sda的原因之一
  4. Guice之Servlet基础
  5. Windows系统appium移动端自动化真机环境搭建
  6. logistic regression及其Python实现
  7. 多多自走棋服务器不稳定,多多自走棋突然宣布停服,数据将全部转移到腾讯服务器中...
  8. 两种方法解决Undefined symbol SystemInit问题
  9. vite 框架 打包修改主页名字得方法
  10. 单片机微型计算机原理及接口技术,单片机微型计算机原理及接口技术课后习题答案第4章.docx...
  11. Arduino使用人体红外传感器
  12. seo关键词优化的技巧
  13. Xilinx HLS 导出IP失败的最新解决方案(2022.1.15)
  14. 06 java GUI 网络编程:图形界面聊天室
  15. 斐波纳契数列(Fibonacci Sequence),又称黄金分割数列
  16. golang结构体指针
  17. EyouCMS响应式幽默笑话搞笑短文网站模板/资讯类文章发布网站模板
  18. thymeleaf拆分头部(head)显示异常问题
  19. Microsoft Office SharePoint Designer 2007 (FrontPage) 2007 介绍
  20. JavaEye范凯谈唐骏造假事件

热门文章

  1. rocketmq消息存储原理_RocketMQ到底快在哪里?深入探索RocketMQ消息存储和查询原理...
  2. Aix下运行java程序_AIX上部署java项目
  3. android多申请内存,Android内存等信息
  4. php 列表收缩展示插件,可展开和收缩的jquery FAQ问答列表特效
  5. 格式notepad自动对齐_6.2 对齐设置
  6. minio 文件预览_Minio使用说明
  7. python txt 操作_python TXT文件操作
  8. 如何在Linux,Ubuntu,CentOS上安装Java 14
  9. linux 更改ssh端口_如何在Linux中更改SSH端口-简易指南
  10. df 命令查看磁盘空间_Linux df命令检查磁盘空间