wechat_app_template/pages/home/home.js

94 lines
2.0 KiB
JavaScript

// pages/home/home.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
let arr = [1, 2, 3, 4, 5]
let k = 4, x = 3
/** *
* @param {number[]} arr
* @param {number} k
* @param {number} x
* @return {number[]}
* */
var findClosestElements = function(arr, k, x) {
var getCloseIndex = function(left,right){
if(left>=right) return left;
let mid=(left+right)>>1;
let result
if(arr[mid]>=x){
result=getCloseIndex(left,mid-1)
}else{
result=getCloseIndex(mid+1,right)
}
return result
}
const len=arr.length;
let right=getCloseIndex(0,len-1);
let left=0;
if(right>0&&arr[right]>x) right--;
if(right+1>=k) left=right+1-k; else right+=(k-(right+1));
while(right<len-1&&((x-arr[left])>(arr[right+1]-x))){ left++; right++; } return arr.slice(left,right+1);
}
const res = findClosestElements(arr, k, x)
console.log(res);
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})