【转】用大顶堆实现优先队列

队列的特点是先进先出。通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西。但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出。这就很像堆的特征:总是移除优先级最高的根节点。 重点:优先级队列,是要看优先级的,谁的优先级更高,谁就先得到权限。不分排队的顺序! 用堆实现优先队列: //最大堆 import java.util.ArrayList; public class Heap<E extends Comparable>{ priv
分类: 其他 发布时间: 09-09 23:15 阅读次数: 0

Python设计模式 - UML - 用例图(Use Case Diagram)

简介 用例图主要是从用户的角度出发对软件产品的功能及执行者进行描述的。 用例图是从需求分析到软件交付的第一步,图示化展示参与者与参与者之间、参与者与用例之间、用例与用例之间的关系,帮助开发人员更好的理解系统的功能。 用例图在使用UML的开发过程中非常重要,需求分析、任务分解、界面设计、类与接口的抽象、详细设计、配置管理、测试实施等阶段都是以用例图为重要支撑的。 用例图建模步骤     - 在需求分析过程中识别出参与者及系统边界     - 提取每位参与者期望的行为或者需要系统提供的功能作为用例
分类: 其他 发布时间: 09-09 23:15 阅读次数: 0

在scala命令行中加入类库

在scala命令行中加入scala的类库. scala -toolcp $HOME/.ivy2/cache/org.scalanlp/breeze_2.12/jars/breeze_2.12-0.13.2.jar
分类: 其他 发布时间: 09-09 23:15 阅读次数: 0

分析轮子(四)- 我也玩一把 Serializable.java 分析轮子(一)-ArrayList.java IDEA使用笔记(八)——自动生成 serialVersionUID 的设置

前言:在写 分析轮子(一)-ArrayList.java 的时候曾经下过一个结论 “实现Serializable接口,表示ArrayList是可序列化的”,这个结论是以往学习的经验所得,并且平时在编程的时候也遇到过其他的问题,比如:在写 IDEA使用笔记(八)——自动生成 serialVersionUID 的设置 的时候,其实就遇到了一个对象序列化和反序列化相关的问题,后来解决了,不过没有深入下去和总结一下。编程这件事情,最好实验一把,就算是他人已经研究明白的东西,自己如果不动手试试,可能印象
分类: 其他 发布时间: 09-09 23:15 阅读次数: 0

022_generator

#!/usr/bin/env python # Author:liujun # List Comprehensions # A list comprehension generates all elements at once ,which consumes a lot of memory # version 1 ls = [ i*2 for i in range(10) ] print(ls) # version 2 def func(i): return i*2 + 1 ls = [ fu
分类: 其他 发布时间: 09-09 23:15 阅读次数: 0

轻量级MVC框架的实现

写一个通用控制器,在开发的时候只用写模型和视图。 注:请求路径和模型的对应关系 step1.添加一个注解@RequestMapping /** 自定义注解:用于配置请求路径和处理器的对应关系。 */ @Retention(RetentionPolicy.RUNTIME) //保留至运行时。所以我们可以通过反射去获取注解信息。 public @interface RequestMapping( ){//自定义注解 public String value( ); } ste
分类: 其他 发布时间: 09-09 23:15 阅读次数: 0

__x__(40)0909第五天__表格 table 的 css 样式 美化

th 表头 是特殊的 td “具有加粗,文字居中”的效果 。 为 table 添加边框: 1. 为 th,td 设置 border: 1px red solid; 2. 为 table 设置 /* 单元格之间的距离。*/ border-spacing: 0px; 3. 为 table 设置 /* 表格的边框合并。设置以后 border-spacing 自动失效*/ border-collapse: collapse; 关于行的 隔行变色 及 悬浮变色 css代码: @charset "utf-
分类: 其他 发布时间: 09-09 23:15 阅读次数: 0

Kotlin 什么是幕后字段?

上篇文章我们了解了Kotlin中的各种类,从Kotlin的类开始说起,而类中则有属性和方法,Kotlin 中的类属性和Java的类成员变量还是有很大区别,同时类属性也有一些比较难以理解的东西,如:属性的声明形式、幕后字段、幕后属性等等。本篇文章我们将详细深入的
分类: 移动开发 发布时间: 09-09 22:59 阅读次数: 0

「译」使用 Node 构建命令行应用

原文地址:How to create a real-world Node CLI app with Node 原文作者:Timber.io 译文出自:阿里云翻译小组 译文链接:github.com/dawn-teams/… 译者:靖鑫 校对者:也树,灵沼
分类: 编程语言 发布时间: 09-09 22:59 阅读次数: 0

一个程序员的自白(三十而立)

今天是他的三十岁生日,首先想到的不是去哪里庆祝,怎么庆祝以及跟谁庆祝,而是对“而立”的思考,古语“立”即“成就”,“成就”更多只是一种外界视角,有一种“点到为止”之错觉。内在角度看,他更愿意理解为“主动性思考”的转折点,是一个持续向上永无止境过程的起点…… 作为丈夫 一个“耐人寻味”的称谓,之所以“耐人”,因为这个角色伴随着自己的大部分人生,“寻味”是因为我俩总是在柴米油盐的平淡之中去挖掘不一样的味蕾刺激,但真正的味蕾享受不是“不一样”,而是隐藏在普遍的平凡当中,需要我俩的共同努力才能享受。就
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

python学习笔记(六):函数、模块

一、函数是什么 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。 二、使用函数的好处 1、简化代码 2、提高代码的复用性 3、代码可扩展 三、
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

滑动拼图 Sliding Puzzle

2018-09-09 22:01:02 问题描述: 问题求解: 问题很Interesting,其实本质就是解空间遍历,使用BFS就可以很快的予以解决~ public int slidingPuzzle(int[][] board) { String goal = "123450"; String start = ""; for (int i = 0; i < board.length; i++) { for (in
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

CentOS7使用httpd apache 和firewalld打开关闭防火墙与端口

Centos7 使用systemctl 工具操作命令 systemctl 是Centos7的服务管理工具中的主要工具 ,它融合之前service和chkconfig的功能于一体 一、httpd的设置 第一 、 httpd 服务的启动 停止 重启 启动 : systemctl start httpd.service 停止: systemctl stop httpd.service 重启: systemctl restart httpd.service 查看httpd 的状态 systemctl
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

Leetcode Week1 Regular Expression Matching

Question Given an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*'. '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching should cover the entire inpu
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

reids基础

下载Redis:https://redis.io/ 下载Redis(中文):http://www.redis.cn/
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

cadence焊盘与封装制作操作步骤详细说明

一、焊盘制作 1.打开Pad Designer软件,新建文件——设置保存路径和焊盘名称(规范命名) 2.Parameters——设置单位——过孔类型——是否镀金 3.Layers——single layer mode(贴片的勾选)——设置begin layer、soldermask_top、pastemask_top(信号盘、热焊盘、隔离焊盘)数据——save 二、封装的制作 1.打开PCB Editor软件,新建文件——封装命名(规范命名)——PACKAGE SYMBOL 2.配置环境 se
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

Oracle DBA最常用的269条命令

1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入SQLPLUS命令提示符 sqlplus /nolog 5 在命令提示符以OS身份连接 connect / as sysdba 6 以SYSTEM的身份连接 connect system/xxxxxxx@服务名 7 显示当然用户有哪些表 select * from tab; 8 显示有用户名和帐户的状态 select username,account
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

Chrome开发者工具面板

面板上包含了如下几个模块 Elements 查找网页源代码 HTML 元素,可以手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈 Console 记 录开发者开发过程中的日志信息,且可以作为与JS进行交互的命令行Shell Sources 断点调试JS Network 从发起网页页面请求Request后分析HTTP请求后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间等),可以根据这个进行网络性能优化 Timeline 记录并分析在网站的生命周期内所发生的各类事件,以此可以提
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

在WINDOWS上开发IOS应用的方法

1,虚拟机上安装MAC系统,里面装XCODE 2,WINDOWS上安装code blocks,这个IDE可以直接在WIN上编译XCODE工程: 最新的IOS在windows环境下编译环境搭建记录
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0

【LOJ】#2109. 「JLOI2015」骗我呢

题解 我深思熟虑许久才算是明白个大概的计数问题吧 先是转化成一个矩形,列一条直线y = x,y = x - (m + 1)我们从(0,0)走到(n + m + 1,m + 1)就是答案 因为我们起始相当于第一行缺一个0,然后有m+1种转移的方案,每次在距左边界j的地方某个点向上走表示转移到缺j - 1,向右走一步走到了缺j,再走一步走到缺j + 1.... 我们把向上走当做-1,向右走当做+1,我们可以建立一个新的模型 就是起点为\((0,0)\)终点为\((2 * n + m + 1,m +
分类: 其他 发布时间: 09-09 22:59 阅读次数: 0