数组:两数之和
时间:2021-07-12
本文章向大家介绍数组:两数之和,主要包括数组:两数之和使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
目前总结的面对数组题目的思路
- 双指针
- 动态规划
- Hash映射
- 特殊:二分查找,异或运算
动态规划是针对最值问题的。
Hash映射是用来处理寻找数组特定元素问题的,常见的键值对是<符合条件的元素,当前下标>
当数组为有序数组的时候考虑到二分查找。
异或运算与双指针都是前面的思路考虑无果时才会考虑这两个方法,异或运算以后再说,优先说说双指针。
双指针
双指针很难说出它的用法,只能说是一种思路,具体怎么用要看具体题目。所以不要死扣双指针的本质什么的,就记住有这个东西可以分析题目。
1.同向双指针,双指针都从数组头或尾开始遍历,一个用于跟踪当前下标,另一个去远方寻找符合条件的元素。(只能说有这个用法,还是那句话,具体问题具体分析)。
2.反向双指针,双指针一个从头一个从尾开始遍历,由题目的条件判断是移动左指针还是移动右指针,直到两个元素相遇。
这题考虑其他方法没有思路,考虑反向双指针的时候有想法。
反向双指针先考虑移动条件,至于为什么要移动,移动能做出来吗这些都不需要考虑,因为如果用反向双指针最后的答案肯定有这一步!
从左或右指针指的元素和 target值来看,当右指针大于target时肯定要移动,但左指针小于target却无法确定是否要移动。由和的提示判断是通过两数之和的条件来移动双指针。
当和比target大时,移动右指针,当和比target小时,移动左指针。这样这道题就出来了!本质上是左右逼近这个数。
总结 反向双指针的条件选择不仅有大于某个数,小于某个数,还有左右之和也可以用与判断。
代码请自行写出。
原文地址:https://www.cnblogs.com/hitsz-yc/p/15003300.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法