文章

4

粉丝

209

获赞

2

访问

2.3k

头像
二元组整数 题解:
P1024 贵州大学机试题
发布于2024年3月6日 16:21
阅读数 571

//使用哈希表
//先对输入的数组使用排序,然后存入哈希表中
//存的时候,先判断,如果说键相同,值相加,否则新插入一个键和值,默认值为1
//同时,另起一个数组b,存不重复的值,(原数组输入的时候可能有重复的值)
//然后对b排序,以b为输出数组
//判断时候,遇到 i==j时,遍历键,如果这个键的值大于一,说明重复了,就要输出一个(x,x);
//例如输入 3 1 2 3,没有重复的,所以直接全部输出
//如果输入5 1 2 2 3 3 ,有重复的值,就需要输出(2,2),(3,3),就在 i==j中进行判断输出


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

typedef struct{
    int key;
    int value;
}KV;
int count = 0;
KV Hash[30];

void Insert(int key){
    for(int i = 0;i < count;i++){
        if(Hash[i].key == key){
            Hash[i].value ++;
            return ;
        }
    }
    Hash[count].key = key;
    Hash[count].value = 1;
    count++;
}
//
int compareNum(const void *a, const void *b) {
    return *(int *)a - *(int *)b;
}


int main(){
    int n;
    int index = 0;
    scanf("%d",&n);
    int arr[n];
    int b[n];
        for (int i = 0; i < n; i++) {
        int temp;
        scanf("%d", &temp);
        arr[i] = temp;

        // 检查当前元素是否已经在数组中出现...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发