We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
题目来源-力扣
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素
例如,给定数组:
let arr = [1, 2, 3, 4, 4, 3, 2]
输出:
1
根据给定数组的特性,只有一个数字是唯一的,其他数字都有两个
从头遍历数组,返回要找的目标值的下标
从尾部遍历数组,返回要找的目标值的下标
利用 indexOf 和 lastIndexOf 方法来确定唯一的数,遍历数组,如果一个数重复出现两次,那么 indexOf 和 lastIndexOf返回的下标值不相同,如果相同,说明就是这个唯一的数
我们知道相同的数字异或运算结果为0 不为0的数字与0异或运算返回这个数字
利用异或运算的特性,可以找出数组的唯一值
let singleNumber = function(nums) { return nums.find(item => nums.indexOf(item) === nums.lastIndexOf(item)) }
执行结果:
singleNumber([1, 2, 3, 1, 2]) //调用 // 返回 3
let singleNumber = function(nums) { return nums.reduce((total, num) => { return total ^ num }) }
singleNumber([1, 2, 3, 3, 4, 1, 2]) //调用 // 返回 4
The text was updated successfully, but these errors were encountered:
No branches or pull requests
题目来源-力扣
题目
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素
例如,给定数组:
输出:
解析
根据给定数组的特性,只有一个数字是唯一的,其他数字都有两个
思路一
indexOf方法
从头遍历数组,返回要找的目标值的下标
lastIndexOf方法
从尾部遍历数组,返回要找的目标值的下标
利用 indexOf 和 lastIndexOf 方法来确定唯一的数,遍历数组,如果一个数重复出现两次,那么 indexOf 和 lastIndexOf返回的下标值不相同,如果相同,说明就是这个唯一的数
思路二
我们知道相同的数字异或运算结果为0
不为0的数字与0异或运算返回这个数字
利用异或运算的特性,可以找出数组的唯一值
答案
寻找下标的方法
执行结果:
异或运算方法
执行结果:
The text was updated successfully, but these errors were encountered: