题解 第三章排序与查找| #找最小数#

找最小数

http://www.nowcoder.com/practice/ba91786c4759403992896d859e87a6cd

使用C语言的qsort如下

#include <stdio.h>
#include <stdlib.h>

int cmp(const void* a,const void*b)
{
    if( *((int*)a) > *((int*)b) )
        return 1;
    else if(*(int*)a==*(int*)b&&*((int*)a+1)>*((int*)b+1))
        return 1;
    else return -1;
}

int main()
{
    int Num;
    scanf("%d",&Num);
    int Arr[Num][2];
    for(int i=0;i<Num;i++)
        scanf("%d%d",&Arr[i][0],&Arr[i][1]);
    
    qsort(Arr,Num,2*sizeof(int),cmp);
    
    printf("%d %d",Arr[0][0],Arr[0][1]);
    return 0;
}

使用Cpp的sort命令如下

  • 使用vector存入二维数组有两种方法
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

//使用sort函数,对二维数组进行排列
//只能用动态数组法和vector数组法
// https://blog.csdn.net/leelitian3/article/details/79293058
//法1:vector数组法

bool cmp(vector<int> a,vector<int> b)
{
    if(a[0]!=b[0])
        return a[0]<b[0];
    if(a[1]!=b[1])
        return a[1]<b[1];
    return 0;
}

int main()
{
    ios::sync_with_stdio(false);
    
    int Num;
    cin>>Num;
    // vector<vector<int>> Arr(Num,vector<int>(2,0));
    //使用vector赋值给二维向量的方法1
    // https://www.cnblogs.com/hustdc/p/10435767.html
    
    //使用vector赋值给二维向量的方法2
    vector<int> Arr[Num];
    
    
    
    //使用vector数组来存储时
    //法1
    //for(int i=0;i<Num;i++)
    //    cin>>Arr[i][0]>>Arr[i][1];
    
    //法2,存入vector数组
    int tmpX,tmpY;
    for(int i=0;i<Num;i++)
    {
        cin>>tmpX>>tmpY;
        Arr[i].push_back(tmpX);
        Arr[i].push_back(tmpY);
    }
    
    
    //sort(Arr.begin(),Arr.end(),cmp);
    //法1
    
    //法2
    sort(Arr,Arr+Num,cmp);
    
    
    
    cout<<Arr[0][0]<<" "<<Arr[0][1]<<endl;
    return 0;
}
  • 使用动态数组作比较如下
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

//使用sort函数,对二维数组进行排列
//只能用动态数组法和vector数组法
// https://blog.csdn.net/leelitian3/article/details/79293058
//法1:vector数组法

bool cmp(vector<int> a,vector<int> b)
{
    if(a[0]!=b[0])
        return a[0]<b[0];
    if(a[1]!=b[1])
        return a[1]<b[1];
    return 0;
}

int main()
{
    ios::sync_with_stdio(false);
    
    int Num;
    cin>>Num;
    // vector<vector<int>> Arr(Num,vector<int>(2,0));
    //使用vector赋值给二维向量的方法1
    // https://www.cnblogs.com/hustdc/p/10435767.html
    
    //使用vector赋值给二维向量的方法2
    vector<int> Arr[Num];
    
    
    
    //使用vector数组来存储时
    //法1
    //for(int i=0;i<Num;i++)
    //    cin>>Arr[i][0]>>Arr[i][1];
    
    //法2,存入vector数组
    int tmpX,tmpY;
    for(int i=0;i<Num;i++)
    {
        cin>>tmpX>>tmpY;
        Arr[i].push_back(tmpX);
        Arr[i].push_back(tmpY);
    }
    
    
    //sort(Arr.begin(),Arr.end(),cmp);
    //法1
    
    //法2
    sort(Arr,Arr+Num,cmp);
    
    
    
    cout<<Arr[0][0]<<" "<<Arr[0][1]<<endl;
    return 0;
}
王道机试指南刷题 文章被收录于专栏

计划刷完这本书

全部评论

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
HNU_fsq:建议直接出国,这简历太6了。自愧不如
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务