Algorithms 练习1.1.15
来源:互联网 发布:重庆警方破获网络诈骗 编辑:程序博客网 时间:2024/06/06 02:11
编写一个静态方法histogram,接受一个int数组a和一个int值M,要求返回大小为M的int数组,其中第i个元素为i在数组a中出现的次数。
代码如下:
import edu.princeton.cs.algs4.StdOut;public class Test { public static int[] histogram(int[] a, int M){ int[] result = new int[M]; for(int i = 0; i < M; i++){ int number = 0; for(int element : a){ if(i == element) number++; } result[i] = number; } return result; } public static void main(String[] args) { int[] a = {1, 1, 2, 3, 1, 7, 5, 3, 2, 2, 2}; int M = 8; int[] result = histogram(a, M); StdOut.print("a[]: "); for(int e : result){ StdOut.print(e + " "); } }}
jimmy的算法如下:
package com.jimmysun.algorithms.chapter1_1;public class Ex15 { public static int[] histogram(int[] a, int M) { int[] result = new int[M]; for (int i = 0; i < a.length; i++) { if (a[i] >= 0 && a[i] < M) { result[a[i]]++; } } return result; } public static void main(String[] args) { int[] a = { 1, 1, 2, 3, 1, 7, 5, 3, 2, 2, 2 }; int[] result = histogram(a, 8); for (int i = 0; i < result.length; i++) { System.out.printf("%3d", result[i]); } }}
可以很明显的看出,jimmy的算法复杂度比我的小了一个级别,还要多多努力。
阅读全文
0 0
- Algorithms 练习1.1.15
- Algorithms 练习1.1.11
- Algorithms 练习1.1.13
- Algorithms 练习1.1.14
- Algorithms 练习1.4.6
- Algorithms 练习1.5.7
- Algorithms 练习2.5.19--Kendall tau距离
- Algorithms
- algorithms
- algorithms
- Algorithms
- ALGORITHMS
- Algorithms
- Algorithms
- Coursera Algorithms week1 练习测验1:Social network connectivity
- Coursera Algorithms week1 练习测验3:Successor with delete
- Algorithms 学习笔记——1.1
- coursera Algorithms week1 练习测验2:Union-find with specific canonical element
- ToLua学习笔记,增量热更新
- inline-block的几个问题(还没解决)
- Unity_混合树实现三种动画的混合_070
- MyBatis (一)基本步骤
- package-cleanup
- Algorithms 练习1.1.15
- 关于菜单的学习(VS2010)
- scikit-learn实现线性回归之Lassolars模型
- RQNOJ 169 最小乘车费用
- java每日一练
- Java上传Excel文件导入数据
- 单片机处理用串口接收频次较高的数据方式
- Linux中常用Makefile隐含规则
- CentOS命令行使用shadowsocks代理的方法