一个机器,每 1 秒会生成一个随机数。
机器需要提供另外一个方法,方法内容就是找出刚刚过去的 10 秒内,生成的数中的最大的数和最小的数。
请设计该机器内,用于计算最大值和最小值的数据结构。
语言要求:我只会 java、js 和 go,其他我都看不懂。
建议用 go,配合 playground 来演示。
一个机器,每 1 秒会生成一个随机数。
机器需要提供另外一个方法,方法内容就是找出刚刚过去的 10 秒内,生成的数中的最大的数和最小的数。
请设计该机器内,用于计算最大值和最小值的数据结构。
语言要求:我只会 java、js 和 go,其他我都看不懂。
建议用 go,配合 playground 来演示。
我来个可读性好点的,思路是使用固定长度(长度可自定义,按这里的要求设为 10 就可以)队列数据结构,先进先出。
var code = "code"
public interface Queue<T> {
public void push(T t);
public T poll();
public int size();
public T peak();
public boolean isEmpty();
public boolean isFull();
}
js 版本奉上
var Data = {
init: function() {
this.interval(1000);
},
pool: [],
maxCount: 10000,
generate: function() {
var num = Math.ceil(Math.random() * 10000);
this.pool.push(num);
if (this.pool.length > this.maxCount) {
this.pool.splice(0, this.pool.length - 10);
}
},
interval: function(interTime) {
var self = this;
setInterval(function() {
self.generate();
}, interTime);
}
}
function getNum(count, Data) {
var sets = Data.slice(Data.length - count, Data.length);
console.log(sets);
console.log("Max is : ", Math.max.apply(null, sets));
console.log("Min is : ", Math.min.apply(null, sets));
}
Data.init();
getNum(10, Data.pool);
😄
调用及测试类
var code =
import java.util.List;
public class Operation {
public static void main(String[] args) {
ArrayQueue<Integer> queue = new ArrayQueue<Integer>(10);
for(int i = 0 ;i< 10;i++){
queue.push(i);
}
System.out.println(queue.capacity);
System.out.println(queue.peak());
System.out.println(queue.poll());
queue.push(new Integer(10));
queue.push(new Integer(11));
queue.push(new Integer(12));
queue.push(new Integer(13));
queue.push(new Integer(14));
queue.push(new Integer(15));
System.out.println(queue.data);
System.out.println("最大值:"+Operation.max(queue.data));
System.out.println("最小值:"+Operation.min(queue.data));
}
public static int max(List<Integer> list){
int max = list.get(0);
for(Integer cur: list){
max = max <cur? cur:max;
}
return max;
}
public static int min(List<Integer> list){
int min = list.get(0);
for(Integer cur: list){
min = min >cur? cur:min;
}
return min;
}
}
Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。
webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。
支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。
Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。
FreeMarker 是一款好用且功能强大的 Java 模版引擎。
Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。
TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。
App(应用程序,Application 的缩写)一般指手机软件。
你听到信仰的声音了么?
小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。
由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!
Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用 。
C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。
MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。
Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
希望你我能在旅途中找到人生的下一站。
Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。
Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于