1.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
var search = function(nums, target) {
let lastnum=null;
let nonnum=null;
nums.map((item,index)=>{
if(item===target){
return lastnum=index
}else{
return nonnum=-1
}
})
if(lastnum||lastnum===0){
return lastnum
}else{
return nonnum
}
};
//输入: nums = [-1,0,3,5,9,12], target = 9
//输出: 4
2.给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
let nums = [2,3,4]
let target = 4
var searchInsert=function(nums,target){
//indexOf:检索元素在数组中的索引,存在则返回索引,不存在则返回-1
let index = nums.indexOf(target)
let result
let newList = []
if(index>-1){
result = index
} else {
nums.push(target)
newList = nums.sort(function(a,b){
return a - b;
})
result = newList.indexOf(target)
}
return result
};
console.log(searchInsert(nums,target),'target')
//输入: nums = [1,3,5,6], target = 5
//输出: 2
附加一道小题目
3.给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
var rotate = function(nums,k){
for(let i=0;i<k;i++){
nums.unshift(nums.pop())
}
}
//输入: nums = [1,2,3,4,5,6,7], k = 3
//输出: [5,6,7,1,2,3,4]