数据结构与算法分析2-28
2020-08-24 20:30
1121 查看
使用正数的数组a设计有效的算法以确定:
没考虑i==j
import java.util.Arrays; import java.util.Random; public class 计算数组中两数之和最大值 { public static void main(String[] args) { int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) { arr[i] = new Random().nextInt(100) + 1; } // arr = new int[] { 11, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; System.out.println(Arrays.toString(arr)); System.out.println(sum(arr)); System.out.println(minus(arr)); System.out.println(times(arr)); System.out.println(de(arr)); } public static int sum(int[] arr) { int a = arr[0]; int b = arr[1]; for (int i = 2; i < arr.length; i++) { if (arr[i] > a) { b = b > a ? b : a; a = arr[i]; } else if (arr[i] > b) { b = arr[i]; } } return a + b; } public static int minus(int[] arr) { int high = arr.length - 1; int low = 0; int minus = arr[high] - arr[low]; for (int i = 1; i < arr.length; i++) { if (arr[i] - arr[low] > minus) { high = i; minus = arr[high] - arr[low]; } if (arr[i] < arr[low]) { low = i; } } return minus; } public static int times(int[] arr) { int a = arr[0]; int b = arr[1]; for (int i = 2; i < arr.length; i++) { if (arr[i] > a) { b = b > a ? b : a; a = arr[i]; } else if (arr[i] > b) { b = arr[i]; } } return a * b; } public static double de(int[] arr) { int high = arr.length - 1; int low = 0; double de = (double) arr[high] / arr[low]; for (int i = 1; i < arr.length; i++) { if ((double) arr[i] / arr[low] > de) { high = i; de = (double) arr[high] / arr[low]; } if (arr[i] < arr[low]) { low = i; } } return de; } }
相关文章推荐
- 数据结构与算法分析(Java语言描述)(28)—— 使用 dfs 求两节点间的路径
- 2014阿里校招题--研发算法(28题)
- Notice: Error: Got error 28 from storage engine Error No: 1030
- Chap4: question: 19 - 28
- Error writing file '/tmp/MY0BkiqD' (Errcode: 28)
- 【180网站】22-28
- 28. 字符串的全排列之第2篇[string permutation with repeating chars]
- 剑指offer面试题28
- C++学习笔记28,纯虚函数和抽象基类
- OCP 1Z0 053 28
- [Phonegap+Sencha Touch] 移动开发28 小米3不支持Sencha touch的解决办法
- 数据结构与算法分析学习笔记--第五章--排序
- C++之练习题28
- 剑指Offer28字符串的排列(递归和非递归实现)扩展有重复元素的排列,字符串的组合种类
- LeetCode 28 Binary Tree Maximum Path Sum
- 剑指Offer:面试题28 字符串的排列
- android开发步步为营之28:自定义Menu
- Effective C++ 26,27,28
- 【刷题小记28】大数阶乘
- 数据结构与算法分析(三)——二项队列