当前位置: 首页 > article >正文

刷题 两数之和

https://leetcode.cn/problems/two-sum/submissions/588870256/?envType=study-plan-v2&envId=top-100-liked
参考快排算法 https://blog.csdn.net/oSKyTonight/article/details/129813861
/**

  • Note: The returned array must be malloced, assume caller calls free().
    */
    int Swap(int *a, int *b)
    {
    int c = *a;
    *a = *b;
    *b = c;
    return 0;
    }

int quickSort(int *a, int *b, int left, int right)
{
if (left >= right)
return 0;
int begin = left, end = right;

int keyi = left;//选定序列首元素为基准值

while (left < right)
{
	//右边找小
	while (left < right && a[right] >= a[keyi])
		right--;
	//左边找大
	while (left < right && a[left] <= a[keyi])
		left++;
	//交换
	Swap(&a[left], &a[right]);
    Swap(&b[left], &b[right]);
}
//相遇时交换key和相遇位置的值
Swap(&a[keyi], &a[left]);
Swap(&b[keyi], &b[left]);

keyi = left;//用keyi记录下本轮确定的基准值位置

quickSort(a, b, begin, keyi - 1);//递归排序左区间[begin , keyi-1]
quickSort(a, b, keyi + 1, end);//递归排序右区间[keyi+1 , end]
return 0;

}

int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
int *retList = (int *)malloc(2 * sizeof(int));
int *tempOrder = (int *)malloc(numsSize * sizeof(int));
*returnSize = 2;
memset(retList, 0, 2 * sizeof(int));
int a = 0;
int b = numsSize-1;

for (int i = 0; i < numsSize; i++)
{
    tempOrder[i] = i;
}
quickSort(nums, tempOrder, 0, numsSize-1);
while(a<b)
{
    if (nums[a]+nums[b]==target)
    {
        retList[0] = tempOrder[a];
        retList[1] = tempOrder[b];
        break;
    }
    else if(nums[a] + nums[b] < target)
    {
        a++;

    }
    else
    {
        b--;
    }
}
free(tempOrder);
return retList;

}


http://www.kler.cn/a/448923.html

相关文章:

  • “AI 线索精益模型调用系统:开启精准营销新引擎
  • 常见数据结构
  • java全栈day19--Web后端实战(java操作数据库3)
  • NLP 中文拼写检测开源-01-基于贝叶斯公式的拼写检查器 CSC
  • STM32F407寄存器点灯
  • 【蓝桥杯】43688-《Excel地址问题》
  • Aec-Library-Website 项目常见问题解决方案
  • laya游戏引擎中打包之后图片模糊
  • 【python高级】341-计算机网络基础 for Socket网络编程
  • VSCode:IDE显示设置 --自定义字体及主题颜色
  • 【JVM】如何有效调整JVM年轻代和老年代的大小
  • Java项目--仿RabbitMQ的消息队列--基于MQ的生产者消费者模型
  • elasticache备份
  • Debian 12.0 上为 Nginx 配置 SSL/TLS 证书
  • Vue:父页面调用子页面方法等待完成
  • Zabbix告警通知部署方案详解
  • ELM分类-单隐藏层前馈神经网络(Single Hidden Layer Feedforward Neural Network, SLFN)
  • 12寸半导体厂等保安全的设计思路
  • Transfomer的各层矩阵
  • Spring Boot开发编译后读取不到@spring.profiles.active@的问题
  • MySQL的分析查询语句
  • 网络刷卡器的功能和使用场景
  • 无人机森林草原播种施肥植物恢复技术详解
  • Wireshark(1)
  • 【Python使用】嘿马头条项目从到完整开发教程第9篇:缓存,1 缓存穿透【附代码文档】
  • 初试Docker