爱没有重量

爱不是负担,而是一种喜悦的关怀和无求的付出。


一位印度教徒,步行到喜马拉雅山的圣庙去朝圣。路途非常遥远,山路非常难行,空气非常稀薄,他虽然携带很少的行李,但沿途走来,还是显得举步维艰,气喘如牛。


他走走停停,不断往前遥望,希望目的地赶快出现在眼前。就在他的前方,他看到一个小女孩,年纪不会超过十岁,背着一个胖嘟嘟的小孩,也正缓慢地向前移动。她喘得很厉害,也一直在流汗,可是她的双手还是仅仅呵护着背上的小孩。


印度教徒经过小女孩的身边,很同情地对小女孩说:“我的孩子,你一定很疲倦,你背的那么重!”


小女孩听了很不高兴地说:“你背的是一个重量,但我背的不是一个重量,他是我弟弟。“
没有错,在磅秤上,不管是弟弟还是包袱,都没有差别,都会显示出实际的重量,但就心而言,那小女孩说的一点都没错,她背的是弟弟,不是一个重量,包袱才是一个重量。他对她的弟弟是出自内心深处的爱。


爱没有重量,爱不是负担,而是一种喜悦的关怀与无求的付出。


摘自舍长《一杯关怀茶暖心香》

非常抱歉,我的确没有考虑石头重量相同的情况。在存在石头重量相同的情况下,需要使用一个 multiset 来存储石头的重量和下标,遍历每个石头时,检查其前后是否存在重量差为D的石头对。 具体实现如下: ```c++ #include <iostream> #include <set> using namespace std; void findPairs(int stones[], int n, int d) { multiset<pair<int, int>> s; // 存储石头的重量和下标 for(int i = 0; i < n; i++) { int stone = stones[i]; auto it = s.find({stone-d, -1}); // 找到一个重量差为D的石头对 while(it != s.end() && it->first == stone-d) { if(it->second != i) { // 排除相同下标的石头 cout << "(" << stone << ", " << it->first << ")" << endl; } it++; } it = s.find({stone+d, -1}); // 找到一个重量差为D的石头对 while(it != s.end() && it->first == stone+d) { if(it->second != i) { // 排除相同下标的石头 cout << "(" << stone << ", " << it->first << ")" << endl; } it++; } s.insert({stone, i}); // 将该石头的重量和下标插入到集合中 } } int main() { int stones[] = {1, 3, 5, 6, 8, 5}; int n = sizeof(stones) / sizeof(stones[0]); int d = 3; findPairs(stones, n, d); return 0; } ``` 由于 multiset 可以存储相同的元素,因此可以处理石头重量相同的情况。遍历每个石头时,分别在 multiset 中查找重量为 stone-d 和 stone+d 的石头,如果存在则输出石头对。需要注意的是,由于 multiset 中可能存在相同的重量,因此需要遍历所有重量为 stone-d 和 stone+d 的石头,排除相同下标的石头。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值