leetcode-1329,1356,1333(学会在map里排序)(自定义排序算法,用auto const& a,这样会快很多)

本文分享了LeetCode上三道经典题目(1329、1356、1333)的解题思路及代码实现,涵盖矩阵对角线排序、按二进制1位数排序和餐厅筛选等算法,深入解析了map排序、二进制操作及自定义sort排序技巧。

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

1:1329:https://leetcode-cn.com/problems/sort-the-matrix-diagonally/

题目:

思路1:用map将对角线上的元素都存储起来,然后排序,再放回原来的位置,

代码:

收获:这个对map的排序,sort(hashmap[s.first].begin(),hashmap[s.first].end());学习上了

思路2:一次遍历就搞定,在遇到对角线元素时,就一次性直接把该条线遍历完,然后排序该对角线的元素,重新填入

代码:

收获:这种row++,col++,最后再还原回去,很值得学习。

1356:https://leetcode-cn.com/problems/sort-integers-by-the-number-of-1-bits/

题目:

思路:先统计各个数代表二进制1的个数,用map存储数量以及这个数本身,再对map进行排序,排序同1329的sort()

代码:

收获:二进制判断1的个数,排序的写法

 

1333:https://leetcode-cn.com/problems/filter-restaurants-by-vegan-friendly-price-and-distance/

题目:

思路:直接判断,将符合条件的放入结果集,最后对结果集进行排序。

代码:

 

收获:sort排序的自定义的写法,以及const auto &,return 的写法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值