栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

力扣数据结构刷题知识点分享 sort 和哈希表

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣数据结构刷题知识点分享 sort 和哈希表

力扣数据结构刷题知识点分享 sort 和哈希表
  • 数据结构
    • qsort() & sort()
      • qsort(), c
      • sort(),c++
    • 哈希表
      • C 语言
      • C++

数据结构 qsort() & sort()

qsort()函数是C 标准库 - ,
sort()函数是c++中
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void , const void))

qsort(), c
#include 
#include 

int cmp(const void* a, const void* b) {

    return  ( *(int*)a - *(int*)b );   //强制转换为int型指针然后解引用。
    //升序
}
int main(){
    qsort(nums, numsSize,sizeof(int),cmp) ;
   }
sort(),c++
#include
 
bool cmp(int a,int b){
    return a>b;
   //降序排列
}
int main(){
    int a[10]={5,5,6,8,2,1,3};
    sort(a,a+10,cmp);//降序排列
}
哈希表

两数之和
https://blog.csdn.net/nameofcsdn/article/details/107297361
哈希表知识

链接: https://blog.csdn.net/nameofcsdn/article/details/107297361

C 语言
#include "uthash.h"

struct hashTable {
    int key;
    int val;
    UT_hash_handle hh;
};

struct hashTable* hashtable;

struct hashTable* find(int ikey) {
    struct hashTable* tmp;
    HASH_FIND_INT(hashtable, &ikey, tmp);  //在"uthash.h"里定义的
    return tmp;
}

void insert(int ikey, int ival) {
    struct hashTable* it = find(ikey);
    if (it == NULL) {
        struct hashTable* tmp = malloc(sizeof(struct hashTable));
        tmp->key = ikey, tmp->val = ival;
        HASH_ADD_INT(hashtable, key, tmp);
    } else {
        it->val = ival;
    }
}

int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
    hashtable = NULL;
    for (int i = 0; i < numsSize; i++) {
        struct hashTable* it = find(target - nums[i]);
        if (it != NULL) {
            int* ret = malloc(sizeof(int) * 2);
            ret[0] = it->val, ret[1] = i;
            *returnSize = 2;
            return ret;
        }
        insert(nums[i], i);
    }
    *returnSize = 0;
    return NULL;
}
C++
class Solution {
public:
    vector twoSum(vector& nums, int target) {
        unordered_map hashtable;
        for (int i = 0; i < nums.size(); ++i) {
            auto it = hashtable.find(target - nums[i]);
            if (it != hashtable.end()) {
                return {it->second, i};
            }
            hashtable[nums[i]] = i;
        }
        return {};
    }
};

作者:LeetCode-Solution
链接:https://leetcode.cn/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-solution/
来源:力扣(LeetCode)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号