#CCF准备一年日常刷题#201409-1相邻数对

本文探讨了一道经典的算法题目,即给定一系列整数,找出所有值相差1的整数对,并介绍了四种不同的解题方法,包括使用布尔数组、map、排序以及双重循环等策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述
  给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。
输入格式
  输入的第一行包含一个整数n,表示给定整数的个数。
  第二行包含所给定的n个整数。
输出格式
  输出一个整数,表示值正好相差1的数对的个数。
样例输入
6
10 2 6 3 7 8
样例输出
3
样例说明
  值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。
评测用例规模与约定
  1<=n<=1000,给定的整数为不超过10000的非负整数。





   这个题,我真是个傻子感觉自己,那么明显的大小比较题,即使没有思路也可以用笨方法遍历然后结果除以2…………数学不好呀嘤嘤嘤……
   感觉这个题老师的问题分析写的很好,先甩链接:http://blog.youkuaiyun.com/tigerisland45/article/details/54755804
   先手动操作一下几个做法
   ………………………………………………………………我是写程序的分割线……………………………………………………………………
1.方法一:bool的数组,标志数组,常用,记住,尤其memset
2.方法二:利用map,有一句话必须加,还不懂为什么,可能是c++本身的原因,学多了回来看。理解了暂时储存真正的意思,利用left暂时储存上一个,感觉66的2333
3.方法三:讲道理这个我没想出来简直想抽自己,既然是相差多少,肯定可以先排序嘛哼唧
4.方法四:循环套循环,大量存储,就是上面说的除以2,不建议用……还是别用了不能用
   
一个多小时又是……叹个气……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值