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

【leetcode hot 100 1】两数之和

一、暴力解法:时间复杂度为O(n^2)

class Solution {public int[] twoSum(int[] nums, int target) {int i=0;int j=0;for(i=0; i<nums.length; i++){for(j=i+1; j<nums.length; j++){if(nums[i]+nums[j] == target){int output[] = {i,j};return output;}}}int output[] = {i,j};return output;}
}

注意:

  • length计算数组长度
  • 数组定义是{},而不是[]

二、HashMap解法:用一个 HashMap 来记录数组中的每一个元素,元素的索引作为哈希表的 key,元素本身作为 value,当发现target - i在哈希表中存在时,就可以直接返回这两个数的索引了。

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> map =new HashMap<>();// 遍历数组的同时,将已经遍历的数组放入hashmap中for(int i=0; i<nums.length; i++){int complement = target - nums[i];// 在已经遍历的数组中找complement,找到则complement+nums[j]=targetif (map.containsKey(complement)){return new int[]{map.get(complement),i};}// 没找到complement,加入hashmapmap.put(nums[i],i);}throw new IllegalArgumentException("没找到");}
}

注意:

  • 在HashMap中,查找某一个key,使用函数contaisKey(),此处contain后有s
  • HashMap加入数据的函数为put(),而不是set()
  • 找不到数据时,没有返回值,抛出IllegalArgumentExceprion()异常

http://www.mrgr.cn/news/92279.html

相关文章:

  • 2025-02-23 学习记录--C/C++-PTA 7-28 猴子选大王
  • 【MySQL】基础篇
  • Web刷题之PolarDN(中等)
  • IO/网络IO基础全览
  • 本地VSCode远程连wsl2中的C++环境的开发配置指南
  • 【DeepSeek】-macOS本地终端部署后运行DeepSeek如何分析图片
  • MySQL数据库连接池泄露导致MySQL Server超时关闭连接
  • EasyExcel 实践案例:打印工资条
  • 基于SpringBoot的“流浪动物救助系统”的设计与实现(源码+数据库+文档+PPT)
  • TLS与自签名证书的创建、作用、用到的工具等知识的介绍
  • Remainder Problem CF1207F
  • Python Django系列—入门实例
  • 垃圾回收算法
  • 【前端】Axios AJAX Fetch
  • 【NLP 23、预训练语言模型】
  • git 命令 设置别名
  • 代码随想录算法训练营第九天| 151.翻转字符串里的单词、右旋转字符串 、28. 实现 strStr()、459.重复的子字符串、字符串总结
  • ONNX转RKNN的环境搭建和部署流程
  • eclogy后台运维笔记(写的很乱,只限个人观看)
  • 大连本地知识库的搭建--数据收集与预处理_01