|
- // 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 () {
-
- }
- })
|