一个机器,每 1 秒会生成一个随机数。
机器需要提供另外一个方法,方法内容就是找出刚刚过去的 10 秒内,生成的数中的最大的数和最小的数。
请设计该机器内,用于计算最大值和最小值的数据结构。
语言要求:我只会 java、js 和 go,其他我都看不懂。
建议用 go,配合 playground 来演示。
一个机器,每 1 秒会生成一个随机数。
机器需要提供另外一个方法,方法内容就是找出刚刚过去的 10 秒内,生成的数中的最大的数和最小的数。
请设计该机器内,用于计算最大值和最小值的数据结构。
语言要求:我只会 java、js 和 go,其他我都看不懂。
建议用 go,配合 playground 来演示。
调用及测试类
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;
}
}
var code="
import java.util.ArrayList;
import java.util.List;
public class ArrayQueue implements Queue {
List data;
int capacity;
public ArrayQueue(int capacity) {
data = new ArrayList<T>();
this.capacity = capacity;
}
public void push(T t) {
if (this.capacity == data.size()) {
data.remove(0);
}
data.add(t);
}
public T poll() {
T t = data.remove(0);
return t;
}
public int size() {
return data.size();
}
public T peak() {
return data.get(data.size() - 1);
}
public boolean isEmpty() {
return 0 == data.size();
}
public boolean isFull() {
return capacity == data.size();
}
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(11));
System.out.println(queue.data);
}
}
"
var foo = {
max: null,
min: null,
timer: null,
mainTimer: null,
getMax: function() {
return this.max;
},
getMin: function() {
return this.min;
},
ctor: function(data) {
this.max = data;
this.min = data;
},
generate: function() {
return parseInt(Math.random() * 100);
},
start: function() {
//console.log('start');
var tmp = foo.generate();
this.max || this.ctor(tmp);
this.max = tmp > this.max ? tmp : this.max;
this.min = tmp < this.min ? tmp : this.min;
//console.log(this.getMax());
//console.log(this.getMin());
this.timer = setTimeout(function() {
foo.start()
}, 1000);
},
run: function(vTime) {
if (!this.timer) {
foo.start();
} else {
console.log('max:' + foo.getMax());
console.log('min:' + foo.getMin());
}
foo.ctor(foo.generate());
var time = vTime || 10000;
this.mainTimer = setTimeout(function() {
foo.run(time);
}, time);
},
stop: function() {
window.clearTimeout(this.timer);
window.clearTimeout(this.mainTimer);
}
}
//foo.run(1000);
foo.run();
HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。
Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。
GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。
Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。
脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。
SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。
你若安好,便是晴天。
强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。
一些有用的避坑指南。
Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。
百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。
FreeMarker 是一款好用且功能强大的 Java 模版引擎。
Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。
钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。
生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。
提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。
互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。
你比 99% 的人都优秀么?
Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。
深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于