博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1#Two Sum(qsort用法)
阅读量:4685 次
发布时间:2019-06-09

本文共 1049 字,大约阅读时间需要 3 分钟。

void*空类型指针,就好像暂时还没有确定类型,任何类型都可以赋给它。但是具体操作时一定要确定类型(如下,比较时先转Node)

cmp返回一定是int,有-1,0,1三种,如果是1则第一个数要放在第二个数后面,形参为const void*

qsort(数组名,数组长度,每个元素的size,比较函数)

给一个指针动态分配空间:类型* b = (类型*)malloc(sizeof(类型))

我的解法:先快排出序,再在O(n)内解开。

/** * Note: The returned array must be malloced, assume caller calls free(). */typedef struct node{    int data;    int index;}Node;Node array[1000010];int cmp(const void *a, const void *b) {     return (*(Node *)a).data > (*(Node *)b).data ? 1 : -1; } int* twoSum(int* nums, int numsSize, int target) {    for(int i = 0; i < numsSize; i++){        array[i].data = nums[i];        array[i].index = i;    }    qsort(array, numsSize, sizeof(array[0]), cmp);    int i = 0, j = numsSize-1;    int *b=(int *)malloc(sizeof(int)*2);    while(i < j){        if(array[i].data+array[j].data < target)    i++;        else if(array[i].data+array[j].data > target)   j--;        else {            b[0] = array[i].index; b[1] = array[j].index;            break;        }    }    return b;}

 

转载于:https://www.cnblogs.com/Surprisezang/p/10193394.html

你可能感兴趣的文章
第二冲刺阶段个人博客5
查看>>
UVA 116 Unidirectional TSP (白书dp)
查看>>
第三方测速工具
查看>>
MySQL 网络访问连接
查看>>
在aws ec2上使用root用户登录
查看>>
数据访问 投票习题
查看>>
CIO知识储备
查看>>
cnblog!i'm coming!
查看>>
使用点符号代替溢出的文本
查看>>
Axios 中文说明
查看>>
fatal: remote origin already exists.
查看>>
gridview 自定义value值
查看>>
2018二月实现计划成果及其三月规划
查看>>
封装springmvc处理ajax请求结果
查看>>
tyvj P2018 「Nescafé26」小猫爬山 解题报告
查看>>
类名.class和getClass()区别
查看>>
开发脚本自动部署及监控
查看>>
JavaScript--语句
查看>>
12/17面试题
查看>>
css 继承和层叠
查看>>