【编程题-错题集】chika 和蜜柑(排序 / topK)

简介: 【编程题-错题集】chika 和蜜柑(排序 / topK)

牛客对于题目链接:chika和蜜柑 (nowcoder.com)


一、分析题目

排序 :将每个橘⼦按照甜度由高到低排序,相同甜度的橘子按照酸度由低到高排序, 然后提取排序后的前 k 个橘子就好了。


二、代码

1、看题解之前AC的代码

#include <iostream>
#include <algorithm>
using namespace std;
 
typedef long long LL;
const int N=200010;
 
struct fruits
{
    LL a;
    LL b;
    static bool cmp(const fruits& x, const fruits& y)
    {
        if(x.b==y.b) return x.a<y.a;
        return x.b>y.b;
    }
}f[N];
 
int main()
{
    int n, k;
    cin >> n >> k;
    for(int i=0; i<n; i++) cin >> f[i].a;
    for(int i=0; i<n; i++) cin >> f[i].b;
    sort(f, f+n, fruits::cmp);
    LL sum_a=0, sum_b=0;
    for(int i=0; i<k; i++)
    {
        sum_a+=f[i].a;
        sum_b+=f[i].b;
    }
    cout << sum_a << ' ' << sum_b << endl;
 
    return 0;
}

2、值得学习的代码

#include <iostream>
#include <algorithm>
 
using namespace std;
 
const int N = 2e5 + 10;
 
typedef pair<int, int> PII; // <酸度,甜度>
 
PII arr[N];
int n, k;
 
int main()
{
    cin >> n >> k;
    for(int i = 0; i < n; i++) cin >> arr[i].first;
    for(int i = 0; i < n; i++) cin >> arr[i].second;
 
    sort(arr, arr + n, [&](const PII& a, const PII& b)
    {
        if(a.second != b.second) return a.second > b.second;
        else return a.first < b.first;
    });
 
    long long s = 0, t = 0;
    for(int i = 0; i < k; i++)
    {
        s += arr[i].first;
        t += arr[i].second;
    }
 
    cout << s << " " << t << endl;
 
    return 0;
}

三、反思与改进

思路正确,但对结构体中属性的值进行大小比较不熟悉,导致没有写出正确结果。


相关文章
|
1月前
【错题集-编程题】排序子序列(模拟)
【错题集-编程题】排序子序列(模拟)
|
1月前
|
C语言
c语言编程练习题:7-34 求分数序列前N项和
c语言编程练习题:7-34 求分数序列前N项和
34 0
c语言编程练习题:7-34 求分数序列前N项和
|
11月前
|
算法 搜索推荐
软考算法-排序篇-上
软考算法-排序篇-上
72 0
|
7月前
|
算法 搜索推荐 C++
C++基础算法排序篇
C++基础算法排序篇
|
11月前
|
存储 搜索推荐 算法
软考算法-排序篇-下
软考算法-排序篇-下
99 0
|
算法 搜索推荐 索引
【基础算法】排序 查找 算法
【基础算法】排序 查找 算法
|
搜索推荐 C语言
用c语言代码将数列8、6、1、9、2从大到小排序。(要求:画出冒泡排序算法的排序过程)
用c语言代码将数列8、6、1、9、2从大到小排序。(要求:画出冒泡排序算法的排序过程)
95 0
|
Python
考点:最值应用,基本排序法,复杂排序法,sorted函数的灵活运用【Python习题05】
考点:最值应用,基本排序法,复杂排序法,sorted函数的灵活运用【Python习题05】
113 0
|
缓存 算法 搜索推荐
算法设计与分析 排序
算法设计与分析 排序
85 0
算法设计与分析 排序