刷题 两数之和

embedded/2024/12/24 9:22:18/

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.ppmy.cn/embedded/148297.html

相关文章

MapReduce的shuffle过程详解

文章目录 MapReduce的shuffle过程详解一、引言二、Shuffle过程详解1、Map端Shuffle1.1、分区&#xff08;Partition&#xff09;1.2、排序&#xff08;Sort&#xff09;1.3、分割&#xff08;Spill&#xff09; 2、Reduce端Shuffle 三、使用示例四、总结 MapReduce的shuffle过程…

stm32中有哪些库?其中标准库和HAL库有什么区别?

stm32中有哪些库&#xff1f; 1. STM32标准外设库&#xff08;Standard Peripheral Library&#xff09; 介绍&#xff1a;STM32 标准外设库是 STM32 官方提供的一个硬件抽象库&#xff0c;旨在简化对 STM32 各类外设&#xff08;如 GPIO、UART、SPI、I2C、ADC、PWM 等&#x…

(补)算法刷题Day24: BM61 矩阵最长递增路径

题目链接 思路 方法一&#xff1a;dfs暴力回溯 使用原始used数组4个方向遍历框架 &#xff0c; 全局添加一个最大值判断最大的路径长度。 方法二&#xff1a;加上dp数组记忆的优雅回溯 抛弃掉used数组&#xff0c;使用dp数组来记忆遍历过的节点的最长递增路径长度。每遍历到已…

LeetCode 209. 长度最小的子数组 (C++实现)

1. 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 示例 1&#xff1a; 输…

32岁前端干了8年,是继续做前端开发,还是转其它工作

前端发展有瓶颈&#xff0c;变来变去都是那一套&#xff0c;只是换了框架换了环境。换了框架后又得去学习&#xff0c;虽然很快上手&#xff0c;但是那些刚毕业的也很快上手了&#xff0c;入门门槛越来越低&#xff0c;想转行或继续卷&#xff0c;该如何破圈 这是一位网友的自述…

Docker部署GitLab服务器

一、GitLab介绍 1.1 GitLab简介 GitLab 是一款基于 Git 的开源代码托管平台&#xff0c;集成了版本控制、代码审查、问题跟踪、持续集成与持续交付&#xff08;CI/CD&#xff09;等多种功能&#xff0c;旨在为团队提供一站式的项目管理解决方案。借助 GitLab&#xff0c;开发…

uniapp .gitignore

打开HBuilderX&#xff0c;在项目根目录下新建文件 .gitignore复制下面内容 #忽略unpackge目录下除了res目录的所有目录 unpackage/* !unpackage/res/#忽略.hbuilderx目录 .hbuilderx# 忽略node_modules目录下的所有文件 node_modules/# 忽略锁文件 package-lock.json yarn.l…

【Chrome Extension】一、CSDN计时扩展设计

【Chrome Extension】一、CSDN计时扩展设计 重点内容内容脚本 content_scripts 文件目录1、整体目录2、manifest.json3、scripts/content.js4、css/content.css 重点内容 内容脚本 content_scripts 1、manifest.json文件配置 {"manifest_version": 3, # *依赖Chro…