当前位置: 首页 > 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]=target
            if (map.containsKey(complement)){
                return new int[]{map.get(complement),i};
            }
            // 没找到complement,加入hashmap
            map.put(nums[i],i);
        }

        throw new IllegalArgumentException("没找到");
    }
}

注意:

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

相关文章:

  • el-date-picker 组件限制禁止选择当前时间之前的时间
  • 鸿蒙开发深入浅出04(首页数据渲染、搜索、Stack样式堆叠、Grid布局、shadow阴影)
  • 05. Springboot admin集成Actuator(一)
  • qt:多元素类,容器类,布局类
  • 大白话javascript如何通过原型链实现对象的继承,并指出这种继承方式的优缺点
  • JVM 高级面试题及答案整理,最新面试题
  • Win32/ C++ 简易对话框封装框架(多语言, 通知栏菜单, 拖拽文件处理)
  • Logback:强大的Java日志框架
  • 大模型面试问题准备
  • 【idea问题排查技巧】
  • C++中数学函数的使用方法
  • Python游戏编程之赛车游戏6-5
  • ESP32学习笔记_Bluetooth(3)——GATT
  • 计算机毕业设计SpringBoot+Vue.js足球青训俱乐部管理系统(源码+文档+PPT+讲解)
  • vue从入门到精通(十三):收集表单数据
  • [前端开发]vue-devtools6.5.0及历史版本下载
  • 【大模型系列篇】如何解决DeepSeek-R1结构化输出问题,使用PydanticAl和DeepSeek构建结构化Agent
  • 【够用就好006】-PC桌面管理ECS服务器的实操步骤
  • 20250212:https通信
  • 网络基础I
  • Python游戏编程之赛车游戏6-4
  • **模式的好处 (设计模式)
  • ArcGIS Pro中创建最低成本路径的详尽教程
  • 科普:HTTP端口80和HTTPS端口443
  • 浅谈 Redis 主从集群原理(一)
  • Figure自研模型Helix发布,人形机器人迈向新纪元?
  • 《一起打怪兽吧》——自制一款Python小游戏
  • 一文讲解Redis中的数据一致性问题
  • Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机
  • Qt在Linux嵌入式开发过程中复杂界面滑动时卡顿掉帧问题分析及解决方案