面试题:选出数组中距离某值最近的10个数?

题目:选出数组a中距离8最近的10个数?

数组a:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

 1 var num = 10;
 2 var a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
 3 var t = 0;
 4 for (var i = 0; i < a.length; i++) {
 5     if (a[i] == 17) {
 6         t = i;
 7     };
 8 };
 9 a.splice(t, 1);
10 if(t<num/2){
11     console.info(a.slice(0, num));
12 }else if(t+num/2 > a.length){
13     console.info(a.slice(a.length-10));
14 }else{
15     console.info(a.slice(t-num/2, t+num/2));
16 }
17
18 console.info(t);

距离最近的意思:7和9距离8的距离是相同的,

3种情况:

  1. 8的前后距离的元素不相同,前面距离少于10/2
  2. 8的前后距离的元素不相同,前面距离少于10/2
  3. 8的前后距离的元素相同
时间: 2024-11-09 05:35:15

面试题:选出数组中距离某值最近的10个数?的相关文章

交通银行太平洋信用卡中心的面试题:数组怎么去重?

7种方法实现数组去重 前言 去重是开发中经常会碰到的一个热点问题,不过目前项目中碰到的情况都是后台接口使用SQL去重,简单高效,基本不会让前端处理去重. 那么前端处理去重会出现什么情况呢?假如每页显示10条不同的数据,如果数据重复比较严重,那么要显示10条数据,可能需要发送多个http请求才能够筛选出10条不同的数据,而如果在后台就去重了的话,只需一次http请求就能够获取到10条不同的数据. 当然,这并不是说前端去重就没有必要了,依然需要会熟练使用.本文主要介绍几种常见的数组去重的方法. 方法

Matlab - 求数组的零值与过零点索引

function zeroindex=pickzero(x)%找出数组的零值及过零点(正负相交处,可能偏离0)m = length(x);x1=x(1:m-1);x2=x(2:m);indz = find(x==0); %zero pointindzer = find(x1.*x2<0); %negative/positiven=length(indzer);for i=1:n if abs(x(indzer(i)))>abs(x(indzer(i)+1)) indzer(i)=indzer(

第三节 java 数组(循环遍历、获取数组的最值(最大值和最小值)、选择排序、冒泡排序、练习控制台输出大写的A)

获取数组的最值(最大值和最小值) 思路: 1.获取最值需要进行比较,每一次比较都会有一个较大的值,因为该 值不确定,需要一个变量进行临储. 2.让数组中的每一个元素都和这个变量中的值进行比较,如果大于了 变量中的值,就用该变量记录较大值. 3.当所有的元素都比较完成,那么该变量中存储的就是数组中最大值 例子://最大值 int arr[] = {1,2,3,4,5,}; int max = arr[0]; for(int a=0;a<arr.length;a++){ {if(arr[a])>a

数组的三值合一

在学习的过程中,发现发现了 一个有趣的东西,那就是数组的三值合一,不知道大家听过没有,我是第一次听,原来也没有注意到这个问题,学习过后,今天总结一下,以下就是我的一些见解. 首先来看下边的代码 测试代码一 #include<iostream> using namespace std; void  main() { int a; int arry[10] = {0}; cout<<arry<<endl; cout<<&arry<<endl;

PHP 按二维数组的键值排序

/** * 按二维数组的键值排序 * @param unknown $array 二维数组 * @param unknown $key 二维数组的键值 * @param string $order 升序/降序 * @return multitype:unknown 返回排序后的数组 */ public static function arr_sort_in_key($array, $key, $order = "asc") { $arr_nums = $arr = array(); f

算法题:找出一个数组中相加值最大的连续序列元素

package arithmetic; /** * @author SHI * 求一个数组中相加值最大的连续序列元素 */ public class MaxSequence { public static void main(String[] args) { int[] a=new int[]{-2,9,-3,4,-6,7,-6,4}; findBigSequence(a); } /** * 思想: (1)计算出该数组的所有元素和,假设该值为最大 * (2)从数组下标1到a.length-1依次

php二维数组的取值与转换

1 while(list($key,$value) = each($arr)) 2 { 3 while(list($k,$v) = each($value)) 4 { 5 echo $key."==>".$k."===>".$v."<br>"; 6 } 7 } 1 $msg = array( 2 array( 3 'id'=>'45s', 4 'name'=>'jacks' 5 ), 6 array( 7 'i

PHP usort 使用用户自定义的比较函数对数组中的值进行排序

From: http://www.php100.com/cover/php/2395.html usort (PHP 4, PHP 5) usort — 使用用户自定义的比较函数对数组中的值进行排序 说明 bool usort ( array &$array , callback $cmp_function ) 本函数将用用户自定义的比较函数对一个数组中的值进行排序.如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数. 比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分

[jQ]jQuery显式操作Checkbox,并用数组存储关联值的方案

------------------------------------------------------------------------------------------------------- /** * 显式选中清空Checkbox(jQuery代码) * @黑眼诗人 <www.chenwei.ws> */ var obj = $(':checkbox'); obj.on('click',function(){ oThis = $(this); if(oThis.attr('s