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

1. 两数之和

原题链接:

1. 两数之和
https://leetcode.cn/problems/two-sum/

完成情况:

##1. n 2 n^2 n2复杂度
在这里插入图片描述

2.HashMap进行优化

在这里插入图片描述

3.空间换时间方法

即,构建一个 1 0 − 9 10^-9 109 1 0 9 10^9 109这个大的数组,然后把数填进去,直接一个for循环即可搞定。
因此,总共会用到两个for循环,时间复杂度即2* O ( n ) O(n) O(n),但是空间复杂度会超级大。

解题思路:

1. n 2 n^2 n2复杂度

没啥思路,暴力循环

2.HashMap进行优化

这里当时没转过弯,为啥**map.put(nums[i],i);**要放在后面,
仔细一想,你for的时候检查的是1,但是put之后,map就会增加,==========
它的底层是链表啊,迭代器之类的,我估计,所以你放在前面的话,会导致i值向上偏。

当然了,说错了,请狂喷我。这里真的不是很懂= =~

在这里插入图片描述

参考代码:

1. n 2 n^2 n2复杂度

package 西湖算法题解;public class _1_两数之和 {public int[] twoSum(int[] nums, int target) {int ans[] = new int[2];for (int i=0;i<nums.length;i++){for (int j=i+1;j< nums.length;j++){if (nums[i]+nums[j]==target){ans[0] = i;ans[1] = j;return ans;}}}return ans;}
}

2.HashMap进行优化

class Solution {public int[] twoSum(int[] nums, int target) {int res [] = new int[2];Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++){int temp = target - nums[i];if(map.containsKey(temp)){res[1] = i;res[0] = map.get(temp);return res;}map.put(nums[i],i);}return res;}
}
/**/
http://www.lryc.cn/news/65744.html

相关文章:

  • 操作系统:06 进程通信
  • WRF模式
  • 2直接连接的网络与VLAN划分【实验】【计算机网络】
  • 【Linux0.11代码分析】04 之 head.s 启动流程
  • 自动化测试和selenium的使用
  • Ubuntu常用终端操作
  • Spring Security 6.x 系列【34】认证篇之前后端分离场景下的集成方案
  • Qt之QTextToSpeech 让你的应用程序说话
  • 为什么程序员喜欢用Linux?
  • leetcode 598. 范围求和 II
  • javaweb前置知识
  • 基于微信小程序的酒店预定管理系统设计与实现
  • 26. Service——深入学习
  • 【算法】Check If Word Is Valid After Substitutions 检查替换后的词是否有效
  • 基于jenkinsfile布置java工程
  • Spring JpaTransactionManager事务管理
  • 全国职业院校技能大赛网络建设与运维赛项赛题(七)
  • asp.net+sqlserver企业公司进销存管理系统
  • WxGL应用实例:绘制点云
  • 一个月内面了30家公司,薪资从18K变成28K,真行啊····
  • 《计算机网络——自顶向下方法》精炼——1.4到1.7
  • 消息队列 (Message Queue)
  • JavaScript原型链污染学习记录
  • 顶级白帽黑客必备的十大黑客技术
  • 【关于认证鉴权一些概念梳理】
  • 16.网络爬虫—字体反爬(实战演示)
  • BOM概述
  • 3.Docker实用技术
  • 群体无人机:协同作战的未来
  • 如何在Windows AD域中驻留ACL后门