题解 | #售价的中位数#

题目考察的知识点

  1. 数组(列表)的使用:题目中要求存储价格数据,我们使用数组(或列表)来保存这些数据,并对其进行插入操作和计算中位数的操作。

  2. 排序算法:为了保持数组的有序性,我们需要对新的价格按照一定的排序规则插入到数组中。在代码中,我们使用了二分查找的思想来找到插入位置,并使用数组的splice方法来实现插入操作。

  3. 数组的索引和计算:根据数组的长度和奇偶性,我们可以计算出中位数的位置,并通过数组的索引来获取中位数的值。

题目解答方法的文字分析

对于解答的方法,我们使用了一个insertPrice函数来插入新的价格,并保持数组有序。另外,我们定义了一个getMedian函数来计算当前价格位置为止的中位数。最后,利用这两个函数,我们遍历了价格数组,依次插入价格并计算中位数,并将中位数存入一个medians数组中作为结果。

本题解析所用的编程语言

本题解析所用的编程语言是JavaScript。在JavaScript中,我们可以使用数组来存储和操作数据,并提供了一些数组方法来实现插入、删除、查找等操作。同时,JavaScript也提供了一些数学函数,如Math.floor用于向下取整。

完整且正确的编程代码

function findMedianPrice(prices) {
  // 定义一个数组来存储价格数据
  let priceList = [];

  // 定义一个函数用来插入新的价格并保持数组有序
  function insertPrice(price) {
    let low = 0;
    let high = priceList.length - 1;

    while (low <= high) {
      let mid = Math.floor((low + high) / 2);

      if (priceList[mid] === price) {
        priceList.splice(mid, 0, price);
        return;
      } else if (priceList[mid] < price) {
        low = mid + 1;
      } else {
        high = mid - 1;
      }
    }

    priceList.splice(low, 0, price);
  }

  // 定义一个函数来计算当前价格位置为止的中位数
  function getMedian() {
    let length = priceList.length;
    if (length % 2 === 0) {
      let midIndex1 = length / 2 - 1;
      let midIndex2 = length / 2;
      return (priceList[midIndex1] + priceList[midIndex2]) / 2;
    } else {
      let midIndex = Math.floor(length / 2);
      return priceList[midIndex];
    }
  }

  // 遍历价格数组,依次插入价格并计算中位数
  let medians = [];
  for (let i = 0; i < prices.length; i++) {
    insertPrice(prices[i]);
    medians.push(getMedian());
  }

  return medians;
}

// 测试
let prices = [10, 8, 12, 15, 6, 20];
console.log(findMedianPrice(prices));  // 输出 [10, 9, 10, 11, 10, 11]
题解 | 前端刷题 文章被收录于专栏

题目考察的知识点 题目解答方法的文字分析 本题解析所用的编程语言 完整且正确的编程代码

全部评论

相关推荐

珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务