计算数组中最大值返回方式

1.遍历比较function forMax(arr){    var max=arr[0];    for(var i=1;i<arr.length;i++){        arr[i]>max&&(max=arr[i]);    }    return max;}var rs=forMax(arr=[50,2,40,5]);console.log(rs);//50;2.排序比较function sortMax(arr){   arr.sort(compare);    return arr[arr.length-1];}function compare(a,b){    return a-b;}var rr=sortMax(arr=[30,3,69,7]);console.log(rr);//69 3.使用Math的方法function MathMax(arr){    return Math.max.apply(null,arr);}var rt=MathMax(arr=[30,18,20,45]);console.log(rt);//45
时间: 2024-10-03 15:12:04

计算数组中最大值返回方式的相关文章

计算数组中最大值和最小值的差值

算法一 <?php /** * 获取数组中最大值和最小值的差值 */ function getDiffVal($arr) { $max = 0; $min = 0; foreach($arr as $k=>$v) { // 赋初值 if ($k == 0) { $max = $min = $v; } // 获取最大值 if ($v > $max) { $max = $v; } // 获取最小值 if ($v < $min) { $min = $v; } } $diff = $max

计算数组中的逆序数(inversion)个数

今天继续学了算法,首先是一个计算数组中的逆序数的算法. 通常,很容易想到的计算办法就是运用两个for循环遍历比较整个数组,当某个数字的下标较大,而值却小于小标比它小的某个位置上的值时,逆序数+1,但是此种算法复杂度较高,随着输入数据规模的增大效率会快速下降(即输入的数组变大了),具体的复杂度计算方法如下:设数组有n个元素,则需要遍历n次,而每一次遍历中要与下标在后面的进行比较,在当次遍历中,其后具有(n-当次遍历的元素的下标)个元素,那么就需要进行n^2/2次操作(后面的元素不需要再与前面的比较

【算法32】计算数组中的逆序对

问题描述 设 A[1...n] 是一个数组,如果对于 i < j 有 A[i] > A[j], 则 A[i] 和 A[j] 构成一对逆序.给定一个数组,计算数组中逆序对的个数.例如数组 a[] = {1, 4, 3, 2}, 则 {4, 3} {4, 2} {3, 2}是逆序对,返回 3. 解法一:暴力求解 两个 for 循环枚举所有的数对,如果是逆序对,则 count++,最终返回 count 即可.时间复杂度 O(n^2),代码如下: 1 #include <iostream>

[ALGO-49] 寻找数组中最大值

算法训练 寻找数组中最大值 时间限制:1.0s   内存限制:512.0MB 问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标. 输入格式 整数数组a[],数组元素个数小于1等于100.输出数据分作两行:第一行只有一个数,表示数组元素个数:第二行为数组的各个元素. 输出格式 输出最大值,及其下标 样例输入 3 3 2 1 样例输出 3 0 说明:蓝桥杯官网上的"样例输入"格式不对,我在这里改成了对的格式 import java.util.Scanner; public cl

定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j

//定义一个由整数组成的数组,然后输入一个整数x,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j: //若X在此数组中,则返回数组中这个数的位置. 源代码: #include<iostream> using namespace std; void main() { int array[]={1,2,3,4,5,6,7,89,45,32,56,78,12,43,90,19};//16个数字 int x; int max=array[0]; int min=array[0]

reduce实现计算数组中每个元素出现的次数 数组去重 将多维数组转化为一维

// js计算数组中每个元素出现的次数 // var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; // var countedNames = names.reduce(function (allNames, name) { // if (name in allNames) { // allNames[name]++; // } // else { // allNames[name] = 1; // } // return allName

计算数组中的最大值

import java.util.Arrays;import java.util.Random; public class MaxOfArray {    public static void main(String[] args){        //创建一个10个长度的数组        int[] arr = new int[10];        //随机生成10个0-99之间的数值,放入数组        Random ran = new Random();        for(in

一个整形数组中最大值求和问题

要求: 1.输入一个整形数组,数组里面有正数也有负数. 2.数组中国连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值.要求时间复杂度为O(n). 当自己看到这个题目的时候,想到了“复杂的问题简单化,一步一步来”,然后在课上老师的引导之下有了自己实现这个功能的方法.最终自己用了两者方法实现功能,但是在第二种方法上花费的时间较多,几乎是第一种方法两倍的时间.下面将两种方法一一解释自己的思路. 一.时间复杂度O(n^2) 本次功能实现简单,一共分为3步,首先是实

获取数组中最大值和最小值

var ary = [12,23,23,4,4,12,4,141,4]; 1.利用obj存储 var min = max= null; var obj = {}; for(var i=0;i<ary.length;i++){ var cur = ary[i]; obj[cur]= cur; } var count = 0 ; for(var key in obj){ count++; if(count===1){ min = key; } max = key; } console.log(min