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

leetcode刷题日记——两数之和

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 题目要求 nums 中能够组成和为 target 的两个数的下标
  • 解法一:暴力求解,直接两两匹配求解
  • 时间复杂度O(n2),空间复杂度O(1)
    在这里插入图片描述
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {int* res=(int*)malloc(sizeof(int)*2);for(int i=0;i<numsSize-1;i++){for(int j=i+1;j<numsSize;j++){if(nums[i]+nums[j]==target){res[0]=i;res[1]=j;*returnSize=2;return res;}}}return NULL;
}
  • 解法二:快排+双指针,先对数组进行快速排序,然后利用双指针求出组成 target 的两个数,然后再去遍历原数组,求出这两个数的下标
  • 时间复杂度O(Nlogn),空间复杂度O(n)
    在这里插入图片描述
int cmp(const void *a, const void *b) {return (*(int*)a - *(int*)b);
}int* twoSum(int* nums, int numsSize, int target, int* returnSize) {int left=0,right=numsSize-1;int* res=(int*)malloc(sizeof(int)*2);res[0]=-1,res[1]=-1;int* temp=(int*)malloc(sizeof(int)*numsSize);memcpy(temp, nums, sizeof(int) * numsSize);qsort(temp, numsSize, sizeof(int), cmp);while(left<right){if(temp[left]+temp[right]==target){break;}else if(temp[left]+temp[right]>target){right--;}else{left++;}}for (int i=0; i<numsSize;i++) {if (nums[i]==temp[left] && res[0]==-1) {res[0]=i;} else if(nums[i]==temp[right] && res[1]==-1) {res[1]=i;}if (res[0]!=-1 && res[1]!=-1) break;}*returnSize=2;return res;
}

[ 官方题解 ]:

  • 一、暴力枚举,如一
  • 二、哈希表:创建一个哈希表,对于每一个 x,我们首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配
class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:hashtable = dict()for i, num in enumerate(nums):if target - num in hashtable:return [hashtable[target - num], i]hashtable[nums[i]] = ireturn []

相关文章:

  • 015-C语言字符函数和字符串函数
  • 【Ubuntu】Ubuntu20.04安装搜狗输入法的详细步骤
  • c# MES生产进度看板,报警看板 热流道行业可用实时看生产进度
  • AUTOSAR图解==>AUTOSAR_SWS_KeyManager
  • AI 趋势下 Python 的崛起:深度剖析
  • AUTOSAR图解==>AUTOSAR_SWS_IntrusionDetectionSystemManager
  • Linux教程-常用命令系列一
  • 精打细算 - GPU 监控
  • 双指针算法(部分例题解析)
  • WSL+Ubuntu+miniconda环境配置
  • 利用yakit充实渗透字典
  • 4月18日日记(补)
  • win安装软件
  • vite 按照出错解决方案
  • Java——二维数组
  • RAGFlow在Docker中运行Ollama直接运行于主机的基础URL的地址
  • 智慧农业新视界:视频监控管理平台如何赋能现代农业
  • Jetson Orin NX 部署YOLOv12笔记
  • JavaScript 的演变:2023-2025 年的新特性解析
  • 服务器简介(含硬件外观接口介绍)
  • 江苏银行去年净赚超318亿增超10%,不良贷款率持平
  • 一季度全社会用电量同比增长2.5%,3月增速显著回升
  • 伊守亮回国加盟川大,长期致力于化工能源环境前沿领域研究
  • 开放创新,筑人民之城——写在浦东开发开放35周年之际
  • 天津一季度GDP为4188.09亿元,同比增长5.8%
  • 武汉一超高层住宅顶楼违建成“不死小强”,相关部门回应