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

沈阳开发网站公司百度指数官网查询入口

沈阳开发网站公司,百度指数官网查询入口,网站建设ahxkj,长沙代注册公司多少钱给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1…

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

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案。

示例 1:

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:

输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:

输入:nums = [3,3], target = 6
输出:[0,1]

Java实现(哈希表法)

import java.util.HashMap;
import java.util.Map;public class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> numMap = new HashMap<>();for (int i = 0; i < nums.length; i++) {int complement = target - nums[i];if (numMap.containsKey(complement)) {return new int[]{numMap.get(complement), i};}numMap.put(nums[i], i);}throw new IllegalArgumentException("No solution found");}
}

其他方法分析

1. 暴力法(双重循环)
public int[] twoSumBruteForce(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};}}}throw new IllegalArgumentException("No solution found");
}
  • 时间复杂度:O(n²),遍历所有可能的元素对。
  • 空间复杂度:O(1),无需额外存储。
  • 缺点:效率低,不适用于大规模数据。

2. 排序 + 双指针法
import java.util.Arrays;public int[] twoSumWithSorting(int[] nums, int target) {int[][] sorted = new int[nums.length][2];for (int i = 0; i < nums.length; i++) {sorted[i][0] = nums[i];sorted[i][1] = i;}Arrays.sort(sorted, (a, b) -> Integer.compare(a[0], b[0]));int left = 0, right = nums.length - 1;while (left < right) {int sum = sorted[left][0] + sorted[right][0];if (sum == target) {return new int[]{sorted[left][1], sorted[right][1]};} else if (sum < target) {left++;} else {right--;}}throw new IllegalArgumentException("No solution found");
}
  • 时间复杂度:O(n log n),排序占主导。
  • 空间复杂度:O(n),需存储原始索引。
  • 缺点:需额外空间存储索引,且会破坏原始数组的顺序。

方法对比

方法时间复杂度空间复杂度适用场景
哈希表法O(n)O(n)通用场景,最优解
暴力法O(n²)O(1)数据量极小
排序双指针O(n log n)O(n)需要有序数据或空间限制较宽松

推荐使用哈希表法,它在时间复杂度和代码简洁性上均为最优。

http://www.dtcms.com/wzjs/357079.html

相关文章:

  • 平面设计专业哪个学校好郑州百度网站快速优化
  • 做博客网站赚钱吗企业网站设计的基本内容包括哪些
  • 网络工程师是什么专业湖南正规seo公司
  • 怎么给网站带来流量网站推广引流最快方法
  • 莱芜网站建设公司推广的软件
  • 福建建设银行官方网站搜易网服务介绍
  • 仿制手机网站教程易观数据
  • 成品app软件大全seo工作室
  • 上国外网站用什么机箱好湘潭网站制作
  • 花生壳域名注册官网seo职位描述
  • 深圳品牌网站设计电话域名注册查询工具
  • 哪些网站做简历合适韶山seo快速排名
  • 网站设计常识今日国际军事新闻头条
  • 烟台网站制作专业世界疫情最新数据
  • 苏州集团网站制作设计淘宝美工培训
  • 如何取一个大气的名字的做网站制作网站教学
  • 把网站内容全删掉 在重新建立会不会被k网络营销岗位有哪些
  • b2b2c多用户商城网站推广seo设置
  • java做网站6开发网站用什么软件
  • 号号网站开发如何进行网络营销
  • 好的手表网站seo顾问是什么
  • 电商网站 案例怎样制作网页设计
  • 做的好的地方网站棋牌软件制作开发多少钱
  • 西安医院网站建设营销型网站建设推荐
  • 永清建设局网站打开全网搜索
  • 网站规划与设计课程设计公司网站定制
  • 专业轻电商网站建设公司网站设计公司报价
  • 郴州高端网站建设昆明seo博客
  • 我为群众办实事项目清单情感网站seo
  • 最好的开发网站建设价格免费外网加速器