查找算法(简单)
剑指 Offer 03. 数组中重复的数字
先进行排序,然后验证是否与下一个元素相同
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3
限制:
2 <= n <= 100000
来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/sh… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/**
* @param {number[]} nums
* @return {number}
*/
var findRepeatNumber = function(nums) {
// 先进行排序,然后验证是否与下一个元素相同
nums = nums.sort((a,b) =>{return b -a})
for(var i = 0;i < nums.length - 1;i++){
if(nums[i] == nums[i+1]){
return nums[i]
}
}
};
剑指 Offer 53 - I. 在排序数组中查找数字 I
直接进行遍历
统计一个数字在排序数组中出现的次数。
示例 1:
输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2:
输入: nums = [5,7,7,8,8,10], target = 6 输出: 0
提示:
0 <= nums.length <= 105 -109 <= nums[i] <= 109 nums 是一个非递减数组 -109 <= target <= 109
注意:本题与主站 34 题相同(仅返回值不同):leetcode-cn.com/problems/fi…
来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/za… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
var search = function(nums, target) {
// 直接进行遍历
var res = 0
var index = 0
for(var i = 0; i < nums.length;i++){
if(nums[i] == target){
res++
}
}
return res
};