Java找出一组数字的最大值

形如:int [] nums = {7,2,8,9,1,12};

解一:两两比较并记录下标,下次比较拿上次比较的最大值和上次比较的下一个进行比较,循环一次找出最大值

 1 /**
 2      * @author 马向峰 比较一遍找出最大值
 3      * @param arr
 4      * @return
 5      */
 6     private static int getMaxNum(int[] arr) {
 7
 8         // 记录下标
 9         int index = 0;
10         // 假设第一个为最大值
11         int max = arr[0];
12         for (int i = index; i < arr.length; i++) {
13             if (i + 1 < arr.length && max < arr[i + 1]) {
14                 index = i + 1;
15                 max = arr[i + 1];
16             }
17         }
18         return max;
19     }

解二:冒泡排序法

 1 private static int findMaxNum(int[] arr) {
 2
 3         for (int i = 0; i < arr.length; i++) {
 4             for (int j = 0; j < arr.length - i - 1; j++) {
 5                 if (arr[j] < arr[j + 1]) {
 6                     int temp = arr[j];
 7                     arr[j] = arr[j + 1];
 8                     arr[j + 1] = temp;
 9                 }
10             }
11         }
12
13         return arr[0];
14     }

时间: 2024-10-27 09:06:42

Java找出一组数字的最大值的相关文章

【十一】找出一组数组中最大值、最大值的角标、最小值、最小值的角标及平均数

需求:现有一组评委打分的数据. 求出他们的最大值与最小值. 最大值最小值的角标 去除最大值与最小值后的平均数 代码: 1 <?php 2 $arr=array(1,2,3,4); 3 //最小值 4 //思路:44,5,3,333,445,99,54,332,-6 5 // 1.定义变量,一个记录下标$index,一个记录最小值$minvalue 6 // 2.假如最小值为下标为0的数 7 // 3.拿认为最小的值与该数组内的数比较 8 // 4.如果$minvalue大于数组内的某个数,则说明

Java 找出四位数的全部吸血鬼数字 基础代码实例

/** * 找出四位数的全部吸血鬼数字 * 吸血鬼数字是指位数为偶数的数字,能够由一对数字相乘而得到,而这对数字各包括乘积的一半位数的数字,当中从最初的数字中选取的数字能够随意排序. * 以两个0结尾的数字是不同意的. *   比例如以下列数字都是吸血鬼数字 1260=21*60 1827=21*87 2187=27*81 ... * 比較笨的低效率的做法: 遍历全部四位数, 每生成一个四位数的时候, *         在双重循环遍历两位数,在两位数的内层循环中推断是否与最外层循环的四位数相等

C++数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。(牛客剑指offer)

///////////////////////////////////////////////////////// //数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. //例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}. //由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. #include <iostream> using namespace std; int Grial(int a[],int n) { if(n==0)return -1;

js数组操作-找出一组按不同顺序排列的字符串的数组元素

从一组数组中找出一组按不同顺序排列的字符串的数组元素将字符串转换成数组后再对数组进行 sort 排序,abcd 和 bdca 使用 sort 排序后会变成 abcd,将拍好序的字符串作为对象的 key 来保存排序一致的字符串.通过将字符转换成 Unicode 编码,用到的 sort 排序,会隐式的转换. 我这里只是简单提供一种思路,所以例子都是简单的一维数组,如果是二维数组的话,使用递归. var stringClassify = function(){ var arrLength = arr.

C++数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。

#include <iostream> #include <bitset> using namespace std; //数组中超过出现次数超过一半的数字(数组) //题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字. template<int _N> int Grial(bitset<_N> &bt,int a[]) { int check[_N]; for(int i=1;i<=_N;i++) { int count =

(算法:二分查找)在排序数组中,找出给定数字出现的次数

题目: 在排序数组中,找出给定数字出现的次数 思路: 既然出现排序数组,很容易想到二分查找,时间复杂度为O(logn): 先通过二分查找找到最左边出现该数字的下标left(如果没找到,则返回-1),然后通过二分查找找到最右边出现该数字的下表right(如果没找到,则返回-1),然后right-left+1就是出现的次数: 代码: #include <iostream> using namespace std; int BinarySearchCount(int *array,int len,i

【c语言】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}, 由于数组中数字2出现了5次,超过数组的长度的一半,因此输出2 一种办法是先把数组排序,那么超过一半的元素一定是数组最中间的元素. 第二种办法比较抽象,设一个变量保存当前值,设一个次数,当前值与下一个值进行比较,如果相等,次数加一,如果不相等,次数减一,如果次数减到0了还是不相等,就把当前值替换掉.代码如下: #include <stdio.h> #includ

找出数组里面的最大值与最小值

package com.lv.study; public class DemoExam2 { public static void main(String[] args) { int nums []={12,23,56,48,78}; //找出数组里面的最大值和最小值 max(nums); min(nums); } public static void min(int nums[]){ int num =nums[0];//默认数组第一个元素是最小的 for(int i=0;i<nums.len

找出一组数中只出现一次的两个数,其他所有数都是成对出现的

题目: 给一组数,只有两个数只出现了一次,其他所有数都是成对出现的.怎么找出这两个数.编写函数实现. 题目分析: 上次介绍了,对于一组数中只有一个数只出现一次,其他所有数都是成对出现的,我们采用了对全部数组元素进行异或,但是对于找出两个出现一次的数应该怎么解决呢?先对所有的元素进行异或,则结果为两个出现一次的数的异或结果,然后将结果转换为二进制,找出二进制数中的第一个1,然后根据这个1的判断条件进行分组,分为两组,分别对两个组的元素进行全部异或,则就找出两个不同的数. 例如:数组中的元素为下面这