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

免费做翻页页面的网站网站修改联系方式

免费做翻页页面的网站,网站修改联系方式,泰安公司网站建设价格查询,南京网站开发培训🏠关于专栏:专栏用于记录LeetCode中Hot100专题的所有题目 🎯每日努力一点点,技术变化看得见 题目转载 题目描述 🔒link->题目跳转链接 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中…

在这里插入图片描述

🏠关于专栏:专栏用于记录LeetCode中Hot100专题的所有题目
🎯每日努力一点点,技术变化看得见

题目转载

题目描述

🔒link->题目跳转链接
给定一个整数数组 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]

题目提示

2 2 2 <= nums.length <= 1 0 4 10^4 104
− 1 0 9 -10^9 109 <= nums[i] <= 1 0 9 10^9 109
− 1 0 9 -10^9 109 <= target <= 1 0 9 10^9 109
● 只会存在一个有效答案

🔍进阶: 你可以想出一个时间复杂度小于 O ( n 2 ) O(n^2) O(n2) 的算法吗?

解题思路及代码

[1]暴力枚举

一眼可以想到的就是让所有数字两两匹配,则我们可以使用两层for循环。但题目要求不能使用同一个元素,下方代码中如果内外层循环下标相等时,即表示同一个元素,需要跳过。
在这里插入图片描述

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {for(int i = 0; i < nums.size(); ++i){for(int j = 0; j < nums.size(); ++j){if(i == j) continue;	//表示同一个元素,跳过if(nums[i] + nums[j] == target) return {i, j};}}return {};}
};

对于两两匹配的算法来说,可以做出如下优化。上述实现代码中,当外循环为1时,它与2组合过了;但当外循环为2是,它又与1组合了1次,这出现了重复组合的情况,降低了效率。下图左侧还给出了其他重复比较的地方(2和1、3和1、3和2均出现了重复比较)。可将其优化为右侧方式,避免重复比较,提高效率。
在这里插入图片描述

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {for(int i = 0; i < nums.size(); ++i){// 不再与小于i的元素组合for(int j = i + 1; j < nums.size(); ++j){if(nums[i] + nums[j] == target) return {i, j};}}return {};}
};

[2]哈希表

上述代码的效率是 O ( N 2 ) O(N^2) O(N2)的,效率比较低。我们可以借助于哈希表将时间效率提高为 O ( 1 ) O(1) O(1)。逻辑思路为:构建一个哈希表,其存储的元素为一个键值对,first域为具体的数值,second域为数值在nums数组的下标;当遍历到第index元素elem时,就在哈希表中查找target-elem,如果存在则返回target-elem的second域和index即可,若不存在则将当前元素的值和下标保存到哈希表中。逻辑思路图如下图所示。
在这里插入图片描述

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> m;for(int i = 0; i < nums.size(); ++i){auto des = m.find(target - nums[i]);if(des != m.end()){return {des->second, i};}else{m[nums[i]] = i;}}return {};}
};

刷题使我快乐😭
文章如有错误,请私信或在下方留言😀

http://www.yayakq.cn/news/202537/

相关文章:

  • 兰州网站建设怎么选如何编辑企业网站
  • 怎样给网站做图标黑龙江建设集团网站
  • 书画网站模板下载个人网站如何做流量
  • 展示系统 网站模板东莞做网站哪家公司好
  • 网站开发 哪些技术宁夏做网站的公司
  • 深圳专业极速网站建设用php做的大型网站有哪些
  • 宣传册设计及网站建设保定网站建设工作
  • 心悦会员荣誉战场两张免做卡网站会展网站建设情况
  • 龙岩网站排名一个公司网站开发多少钱
  • 国外网站空间需要备案吗网站转为移动网站
  • 免费flash网站源码wordpress开启缩略图
  • 南宁市有哪些做网站的外包企业贵州住房建设厅官网查询
  • 邯郸网站建设费用wordpress设置固定链接打不开
  • 百度统计网站概况网站制作评价
  • 怎么查看网站根目录博采网站建设
  • 网站透明背景怎样做网络推广赚钱
  • 辽宁天一建设有限责任公司网站wordpress 国内主机
  • 网站做水印有没有影响吗网站建设外包协议
  • 浙江响应式网站建设制作最大的网站建设公司排名
  • 中国网通做网站广告创意策划
  • 网站开发过程模型梦幻西游网页版官方网站
  • 网站建设企业公司推荐深圳网站制作收费
  • 门户网站开发jz190网站建设中切图的意义
  • 移动外包公司要不要去莱芜做网站优化
  • 为什么php做不了大网站网上如何赚钱
  • 像wordpress一样的网站石家庄网站建设工作室
  • 杭州做网站哪个公司好自己电脑做服务器上传网站 需要备案吗
  • 做网站设计制作的公司1688货源网下载app
  • 贵金属网站建设北京手机版建站系统开发
  • 网站建设维护考试网站规划与设计论文