首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

获取达到最大值的两个索引

,可以通过以下步骤实现:

  1. 定义一个数组,存储需要比较的数值。
  2. 遍历数组,记录当前最大值和对应的索引。同时,记录第二大值和对应的索引。
  3. 如果遇到比当前最大值更大的数值,更新最大值和对应索引,并将之前的最大值和索引更新为第二大值和索引。
  4. 遍历完成后,即可得到最大值和第二大值的索引。

以下是一个示例的JavaScript代码实现:

代码语言:txt
复制
function getMaxIndices(arr) {
  let maxIndex = -1; // 最大值索引
  let secondMaxIndex = -1; // 第二大值索引
  let maxVal = Number.MIN_SAFE_INTEGER; // 最大值
  let secondMaxVal = Number.MIN_SAFE_INTEGER; // 第二大值

  for (let i = 0; i < arr.length; i++) {
    if (arr[i] > maxVal) {
      // 更新第二大值
      secondMaxVal = maxVal;
      secondMaxIndex = maxIndex;
      // 更新最大值
      maxVal = arr[i];
      maxIndex = i;
    } else if (arr[i] > secondMaxVal) {
      // 更新第二大值
      secondMaxVal = arr[i];
      secondMaxIndex = i;
    }
  }

  return [maxIndex, secondMaxIndex];
}

const arr = [2, 4, 6, 8, 10];
const [maxIndex, secondMaxIndex] = getMaxIndices(arr);
console.log("最大值索引:" + maxIndex);
console.log("第二大值索引:" + secondMaxIndex);

该代码首先定义了四个变量,用于存储最大值索引、第二大值索引、最大值和第二大值。然后,使用循环遍历数组,依次比较每个元素与当前的最大值和第二大值。如果出现更大的值,就更新相应的变量。最后,返回最大值索引和第二大值索引。

需要注意的是,该代码只适用于数组中不存在重复值的情况。如果数组中存在重复值,并且要求返回所有最大值的索引,需要对代码进行适当的修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

图解 | Elasticsearch 获取两个索引数据不同之处的四种方案

——问题来源:死磕 Elasticsearch 知识星球 2、问题解读 假定有两个索引 index1、index2,这两个索引中有大量相同数据。...这个问题的本质是实现类似:linux 下的 diff 命令的操作,找出一个索引中存在而在另外一个索引不存在的数据。...其实是可以搞定的。我们通过组合索引检索,然后对索引中公有相同主键字段进行聚合,然后进行去重统计,找出计数 的就是我们想要的 id 。因为:如果两个索引都有数据,势必聚合后计数 >= 2。...细心的读者会发现,这个 compare 像是系统生成的索引。没错的,这是借助:POST _transform/_preview ...生成然后人工做部分修改后的索引。...return "mismatch" } """ } } } } } source:指定了两个源索引

1.8K30
  • 有索引却不用的两个场景

    一直有朋友问,是不是表建了索引,一定会使用索引,在RBO时代,访问效率会参考一些规则,优先级高的,认为效率就高,例如索引就比全表扫描效率高,但CBO时代,则会以成本为依据,谁的成本低,谁的效率就高...建了索引,SQL却未使用索引,有很多情况,何况我不精通,所以不能一一枚举出来,但结合昨天广分一位兄弟的问题,列举出两个场景,提供一些思路和方法。...如果各位对索引的结构,比较了解的话,就比较容易理解其原因了,我们此处用的是BTree索引,即平衡二叉树索引,他的结构类似一棵树形,有根节点、分支节点,以及叶子结点,唯一索引和非唯一索引,叶子结点存储的信息会略有不同...接着执行report_tuning_task输出建议结果,请注意要是不设置开始的set,则可能结果显示为空, ? 内容如下,表示Oracle对这条SQL有两个建议, ?...CBO时代,并不是有了索引,就一定会用索引,能不能用上,需要看谁的成本更低,影响成本值计算的因素很多,本文的问题,只有1条记录的时候,不用索引是对的,因为多块读的全表扫描,成本低于单块读的索引扫描(需要回表

    57920

    SQL 获取一行中多个字段的最大值

    需求描述: 在 chaos(id,v1,v2,v3) 表中获取每个 id 对应的 v1、v2、v3 字段的最大值,v1、v2、v3 同为数值类型。...也可以把嵌套的 IF 语句看成是下面这两个 IF 语句的组合。...v12 = IF(v1 > v2, v1, v2) v_max = IF(v12 > v3, v12, v3) 如果 chaos 再增加两个数值列 v4、v5,要同时比较这五个字段的值,嵌套的 IF...那么,有没有比较简单且通用的实现呢? 有。先使用 UNION ALL 把每个字段的值合并在一起,再根据 id 分组求得最大值。...使用 CONCAT_WS() 函数将 v1、v2、v3 的值组合成使用逗号分割的字符串; 在递归语句使用 SUBSTRING_INDEX() 根据逗号分解字符串的每个数值; 根据 id 分组求得最大值。

    11.5K20

    Javascript获取数组中的最大值和最小值的方法汇总

    比较数组中数值的大小是比较常见的操作,下面同本文给大家分享四种放哪广发获取数组中最大值和最小值,对此感兴趣的朋友一起学习吧 比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的...this.length; for (var i = 1; i < len; i++){ if (this[i] < min){ min = this[i]; } } return min; } //最大值...);//10 console.log(getMaximin(b,"min"));//04 方法四: var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值...var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(",");//转化为一维数组 alert(Math.max.apply(null,ta));//最大值...alert(Math.min.apply(null,ta));//最小值 以上内容是小编给大家分享的Javascript获取数组中的最大值和最小值的方法汇总,希望大家喜欢。

    7.5K50

    两个列表的最小索引总和

    两个列表的最小索引总和) https://leetcode-cn.com/problems/minimum-index-sum-of-two-lists/ 题目描述 假设Andy和Doris想在晚餐时选择一家餐厅...你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。...Tapioca Express", "Burger King", "KFC"] ["KFC", "Shogun", "Burger King"] 输出: ["Shogun"] 解释: 他们共同喜爱且具有最小索引和的餐厅是...“Shogun”,它有最小的索引和1(0+1)。...提示: 两个列表的长度范围都在 [1, 1000]内。 两个列表中的字符串的长度将在[1,30]的范围内。 下标从0开始,到列表的长度减1。 两个列表都没有重复的元素。

    68820

    文本获取和搜索引擎的概率模型

    无法处理用户没有看过的文档以及没有过的查询 企业微信截图_15626513457190.png 概率模型的核心思想就是,假设当前文档是某个用户想要的,那么这其中有多大的概率表明这个查询是来自于此特定用户...这种计算方式,很明显的是它依赖于当前语句的,用处在于处理自然语言中的不确定性,比如要知道某个句子“Today is”下一个单词是”Wednesday”的概率。...这种模型最简单的情况就是 Unigram LM Unigram LM 假设所有单词都是互相独立的,那么单个句子成立的概率就是每个单词出现的概率。...|q|等价于整个文档库中的单词在查询语句中出现的次数,也就是查询语句本身所包含的单词的数量 函数重写后,对于排序来讲,最后一部分,所有的文档算出来的值都是一样,所以可以忽略【针对所有的文档库计算的...】,对于中间的部分,可以看到相对长的查询有一个基于因子的log算法,某种程度上是对长度的一种惩罚,越长可以选择较大的因子,而对于第一部分来讲,可以看到,可见的文档的单词概率则类似于TF,不可见的文档部分则相当于

    91930

    Java中获取一个数组的最大值和最小值

    1,首先定义一个数组; //定义数组并初始化 int[] arr=new int[]{12,20,7,-3,0}; 2,将数组的第一个元素设置为最大值或者最小值; int max=arr[0...];//将数组的第一个元素赋给max int min=arr[0];//将数组的第一个元素赋给min 3,然后对数组进行遍历循环,若循环到的元素比最大值还要大,则将这个元素赋值给最大值;同理,若循环到的元素比最小值还要小...,则将这个元素赋值给最小值; for(int i=1;i的第二个元素开始赋值,依次比较 if(arr[i]>max){//如果arr[i]大于最大值...max int min=arr[0];//将数组的第一个元素赋给min for(int i=1;i的第二个元素开始赋值,依次比较...if(arr[i]>max){//如果arr[i]大于最大值,就将arr[i]赋给最大值 max=arr[i]; } if(arr[i]<min){//如果arr

    6.3K20

    ​LeetCode刷题实战599:两个列表的最小索引总和

    今天和大家聊的问题叫做 两个列表的最小索引总和,我们先来看题面: https://leetcode-cn.com/problems/minimum-index-sum-of-two-lists/ Suppose...假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。...Express", "Burger King", "KFC"],list2 = ["KFC", "Shogun", "Burger King"] 输出: ["Shogun"] 解释: 他们共同喜爱且具有最小索引和的餐厅是...“Shogun”,它有最小的索引和1(0+1)。...LeetCode刷题实战581:最短无序连续子数组 LeetCode刷题实战582:杀掉进程 LeetCode刷题实战583:两个字符串的删除操作 LeetCode刷题实战584:寻找用户推荐人 LeetCode

    60920
    领券