算法通关村第五关-白银挑战队列经典问题

news2024/11/27 10:44:11

大家好我是苏麟 , 今天带来几道经典小题 .

大纲

    • 两数之和

两数之和

相信大家对这道题还是很眼熟的 , 打开LeetCode第一道题就是它 , 对它可真的又爱又恨 , 很多新手朋友们想刷LeetCode但又不知道从哪开始就打开了第一题 , 结果就对算法失去了信心 .

这道题找对方法还是很容易的 , 下面我们就开始说说这道题 :

描述 ;

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

题目 :

LeetCode 1.两数之和 :

两数之和

在这里插入图片描述
分析 :

本题可以使用两层循环解决,第一层确定一个数,2,7,一直到11,然后内层循环继续遍历后序元素,判断是否存在target - x的数即可,代码如下:

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

这种方式的不足在于寻找 target -x 的时间复杂度过高,我们可以使用哈希表,可以将寻找 target -x的时间复杂度降低到从 O(N)降低到 O(1)。这样我们创建一个哈希表,对于每一个x,我们首先查询哈希表中是否存在 target - x,然后将 插入到哈希表中,即可保证不会让x 和自己匹配。

解析 :

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> hashMap = new HashMap<>();

        for(int i = 0; i < nums.length ; i++){
            if(hashMap.containsKey(target - nums[i])){
                return new int[] {hashMap.get(target - nums[i]),i};
            }
            hashMap.put(nums[i],i);
        }
        return new int[]{};
    }
}

这期就到这里 , 下一关见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1169103.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tcp/ip协议2实现的插图,数据结构2 (15 - 章)

(40) 40 十五1 插口层 结构socket,sysent (41) 41 十五2 插口层 实用函数与file结构描述汇总 (42) 42 十五3 插口层 函socket,socreate,pr_usrreq (43)

寄存器(详解)

举个栗子 想象你在做菜的过程中&#xff0c;寄存器的作用可以类比为你在炒菜时使用的炉灶上的炊具和炊具支架。炊具支架上放置的是你即将使用的食材和调料&#xff0c;而这些食材和调料就相当于寄存器中的数据。 炊具支架&#xff1a; 炊具支架类似于CPU内部的寄存器。它们都是…

Deep Image Matting:深度学习Matting开山之作

论文&#xff1a;https://arxiv.org/pdf/1703.03872.pdf 代码&#xff1a;GitHub - foamliu/Deep-Image-Matting-PyTorch: Deep Image Matting implementation in PyTorch 1、动机 在此之前的Matting方法要么是用传统方法&#xff0c;要么是传统深度学习的组合&#xff0c;他们…

毕业文稿查询系统

毕业设计不用愁 毕业文稿查询系统&#xff1a;http://43.143.214.52:9876/ 开通报告不用愁 毕业文稿查询系统&#xff1a;http://43.143.214.52:9876/

ArGIS Engine专题(16)之GP工具实现影像批量复制重采样和按矢量范围批量裁剪

一、结果预览 (1)影像批量复制和重采样 (2)按矢量范围批量裁剪 二、需求简介 本文的最终目的其实是要实现影像按矢量范围批量裁剪,笔者准备处理的影像范围较大,并且是按各个市分块的,要实现统一裁剪时,需要将各个…

夯实c语言基础(2)

夯实c语言基础&#xff08;2&#xff09; 题干执行以下程序段执行后的输出结果分别为&#xff08;  b &#xff09;、&#xff08; a  &#xff09;、&#xff08;  a &#xff09;、&#xff08;  d &#xff09;。 程序段一&#xff1a; int i1,a0; while(i<…

YOLO V1学习笔记

为什么要学YOLOV1_哔哩哔哩_bilibili 这个视频讲解的很好&#xff0c;建议在看这个之前看看卷积神经网络&#xff0c;会对卷积后的结果理解更加深刻一点。 一 背景 目标检测分为单阶段和两阶段模型。 之前的目标检测DPM、R-CNN、Fast-RCNN、Faster-RCNN都是双阶段模型&…

Zeal下载文档慢的问题

1. 安装Zeal 官方下载网站&#xff1a; https://zealdocs.org/ 2. 安装文档&#xff08;在线安装方式&#xff09;&#xff08;下载速度非常慢&#xff09; Tools - Docsets Available中下载安装对应的文档 3. 安装文档&#xff08;离线安装方式&#xff09; ①下载文档…

按键精灵开发环境搭建

按键精灵是一个可用于编写自动化执行程序的软件&#xff0c;不仅可以用于PC端&#xff0c;也可以用于手机端&#xff0c;平台稳定&#xff0c;生态良好&#xff0c;开发快捷&#xff0c;是自动化软件开发必不可少的利器。 1. 下载软件 官网&#xff1a;按键精灵_按键精灵论坛…

【PWN · heap | Overlap | off-by-one】HITCON Trainging lab13

记录一道wiki学习overlap的题目 前言 通过overlap可以造成堆的重叠&#xff0c;进而通过堆的修改、访问等操作&#xff0c;劫持或泄露另一个堆的信息&#xff0c;如果堆上存在指针&#xff0c;而存在对指针的读写&#xff0c;就可以控制修改该指针&#xff0c;进行任意地址读/…

Redis Part2

Redis中如何的去存放一个Java对象&#xff1f; 直接存放Json类型即可&#xff0c;因为我们Json类型最终就是一个String类型。 Spring Boot整合Redis 三步骤完成SpringBoot对Redis数据库的整合 引入spring-boot-starter-data-redis依赖在application.yml中配置Redis信息注入Re…

Java自学第2课:Java语言基础知识要点

1 Java主类结构 任务&#xff1a;创建新项目名为item&#xff0c;包名为number&#xff0c;类名为first。 1.1 包声明 不指定包时&#xff0c;默认就是工程名&#xff0c;指定后&#xff0c;类文件可以分类了&#xff0c;是这意思吧。包就大概等于一个文件夹。而且在类文件中…

基于nodejs+vue网上鲜花销售系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

初识Java 17-1 反射

目录 反射的基本作用 Class对象 类字面量 泛型类的引用 cast()方法 本笔记参考自&#xff1a; 《On Java 中文版》 ||| 反射可以在程序运行时发现并使用对象的类型信息。 反射的存在使Java的编程不再局限于面向类型的操作。这一特性有利有弊&#xff0c;在深入Java之前&am…

【前端笔记】ant-design-vue 3.x使用modal.method()自定义content内容小记

在一次编写业务代码时&#xff0c;碰到了一种既想要Modal.success样式&#xff0c;有想要定制其content内容的情况。 大部分情况下&#xff0c;使用Modal.method()这种方式时&#xff0c;可能content内容固定都是字符串&#xff0c;那如果想要做更高级的交互怎么办&#xff1f…

文件管理技巧:根据大小智能分类并移动至目标文件夹

在文件管理过程中&#xff0c;我们经常需要整理大量的文件。根据文件的大小&#xff0c;将其智能分类并移动至目标文件夹&#xff0c;可以帮助我们更高效地管理文件&#xff0c;提高工作效率。通过使用云炫文件管理器可以根据文件大小进行智能分类和移动至目标文件夹&#xff0…

【LeetCode】117. 填充每个节点的下一个右侧节点指针 II

117. 填充每个节点的下一个右侧节点指针 II 难度&#xff1a;中等 题目 给定一个二叉树&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; }填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点&#xff0c…

【Linux】centos7安装配置及Linux常用命令

目录 一.Centos安装与配置 1.1.创建 1.2.安装配置CentOS 7实操 二.Linux常用命令 2.1.常用命令 2.2.三种模式 三.换源处理(切换国内源) 3.1.拍照备份 好啦今天就到这里哦&#xff01;&#xff01;希望能帮到你哦&#xff01;&#xff01;&#xff01; 一.Centos安装与配…

Ubuntu重启后进入initramfs导致无法开机解决方案

今天&#xff0c;我的电脑意外关机&#xff0c;重新开机后打开了虚拟机。该虚拟机使用的是 Ubuntu 22.04 系统。但重启后&#xff0c;系统一直显示(initramfs):&#xff0c;导致无法正常启动。最后&#xff0c;在网上查找了一些解决方案&#xff0c;成功解决了这个开机问题。在…