积木

数据结构之递归Demo(走迷宫)(八皇后)(汉诺塔)

谁说我不能喝 提交于 2020-05-08 09:57:00
递归 顾名思义,递归就是递归就是递归就是递归就是递归......就是递归   Google递归:😄    走迷宫(较容易):   构建一个二维数组(如下图),其中1表示围墙,0表示通路,现要求从起点走到终点。利用递归可以以少量代码实现。 由于比较简单,直接上代码分析:   参数 i,j 为迷宫起始坐标,而要走出迷宫,必须绕过围墙1,走迷宫当然有策略,这里比较简单的给出了下右上左的次序判断是否通路,同样也可以上右下左,左上右下,左下右上,注意必须是闭环的,否则绝对走不出迷宫!(这里强烈建议按照代码自己思考走一遍或者debug分析一下) 1 // 下右上左 2 public static boolean setWay( int [][] array, int i, int j) { 3 if (array[6][6] == 7) // 判断每一种选择最后是否能走出迷宫 4 return true ; 5 else { 6 if (array[i][j] == 0 ) { 7 array[i][j] = 7; // 表示此坐标已经来过,下面接着判断各种情况 8 if (setWay(array, i + 1 , j)) 9 return true ; 10 else if (setWay(array, i, j + 1 )) 11 return true ; 12 else if

spring cloud系列教程第一篇-介绍

北慕城南 提交于 2020-05-06 11:09:26
spring cloud系列教程第一篇-介绍 前言: 现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了。那么,微服务只是指spring boot吗?当然不是了,微服务需要治理,需要监控等等一系列的组件。这就诞生了spring cloud。从本篇开始,凯哥(凯哥Java:kaigejava)将和大家分享spring cloud系列教程。凯哥将和大家分享2020年之前的spring cloud热门技术。还要会和大家分享2020年比较火的spring cloude Alibaba相关的组件。好了,我们言归正传. 本文主要内容:1:微服务介绍;2:分布式体系常用的几个维度;3:spring cloud以及2020年开始升级的替代技术。 本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列教程》教程的第一篇:《spring cloud系列教程第一篇-介绍》。 一:微服务介绍: Martin Fowler在2014年3月份对微服务的定义: 翻译: 微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制相互协作(通常是基于HTTP协议的restful API).每个服务都围绕着具体业务进行构建

【NOIP2018 Day1】题解

为君一笑 提交于 2020-05-05 13:06:38
###T3 rp++; 今天题比较简单 而且考了很多嫌疑原题? 大家基本250+ 本蒟蒻。。。T3十分看脸 再次祝rp++; ##T1 积木大赛本赛嘛 如果d[i] < d[i - 1] ans += d[i - 1] - d[i]; 最后再加上d[n]就可以了 ##T2 完全背包 排序 能被替代的钱扔掉 ##T3 二分答案 + 树形dp 从叶子到根的顺序dp 对于每个点维护一个left 每个点在他的子树里尽可能多的找到比当前答案长度长的路径 然后,把连到根但不能独自组成路径的最长路径 留下来记到left里面 来源: oschina 链接: https://my.oschina.net/u/4370598/blog/3757310

【比赛游记】NOIP2018游记

ぐ巨炮叔叔 提交于 2020-05-02 09:15:38
往期回顾: 【比赛游记】NOIP2017游记 转眼间又过去了一年,当年还是初中生的我已经摇身一变成为了AHSOFNU的高一学生。 回顾这一年我好像也没学什么新东西,要说有用的可能就无旋Treap吧,不知道能不能在NOIP上起到作用。 NOIP2018 rp++ ———————————————————————————————————————————————————————— 普及组是没去了,听说普及很难,我看了看好像也没啥…… 提高D1: 密码:" Fei2Xue@Lian$Tian! ",想起了前些天离开了我们的金庸老先生…… 先把三题都看完了,花了大概10min的时间。 T1是原题,NOIP2013积木大赛,两年前就做过了,应该不会挂。自己抄自己的原题可还行。 用时4min打完了。 T2看了5min,没发现什么性质,于是去想T3。 T3一下子就想到是二分答案+树形DP。 为了保险,先看了部分分,发现分数挺多的。 于是打了m=1:求树的直径,我写了个DP做。 还有ai=bi-1:链,直接check。 以及度数<=3:二叉树,转移比较简单。 这时候大约又过去了一个半小时,想了想T3的正解怎么做,发现有点难写。 于是返回去做T2,仍然没思路,写了个暴力把能被表示的删掉,发现大样例过了…… 自己证明了一波发现暴力是对的,改了一下代码让它变得好看一些,电脑右下角显示着10:32。

【雕爷学编程】Arduino动手做(4)---振动传感器模块

南笙酒味 提交于 2020-04-29 18:14:24
---恢复内容开始--- 37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真) 实验之 四:振动传感器模块 手头这模块的实物照片 核心是sw-18015p( 18010p ) 高灵敏振动传感器 滚珠开关也叫钢珠开关,珠子开关,其实都是震动开关的一种只是叫法不一样是通过珠子滚动接触导针的原理来控制电路的接通或者断开的。 简单来说,就如同打开或关掉电灯一样,开关触碰里头的金属板电灯就亮,离开就关,滚珠开关也是利用类似的原理。利用开关中的小珠的滚动,制造与金属端子的触碰或改变光线行进的路线,就能产生导通或不导通的效果。 滚珠开关目前已有许多不同类型的产品,包括角度感应开关、震动感应开关、离心力感应开关、光电式滚珠开关。以往此类型开关以水银开关为主,把水银(汞)当作触击的元件,但自从各国政府陆续禁用水银后,触击元件就为滚珠所取代。 滚珠开关运用层面极广,例如:如胎压监控系统(TPMS)、脚踏车灯、数位相框旋转、 萤幕旋转、视讯镜头翻转、防盗系统等,举凡想侦测物体角度变化、倾倒、移动、震动

1克材料铺满1.3个足球场!超高孔隙率的神奇材料问世,有望改变整个储气行业 | 专访

独自空忆成欢 提交于 2020-04-20 18:10:36
  氢气和甲烷等能源气体对人们来说,是当下关键且环保的能源载体。 然而如何良好地储存这类气体,是限制人们使用的重要瓶颈问题。   为了寻求一种较好的储存及运输氢气和甲烷的方法,全球的科学家们开展了大量的研究。而金属-有机框架化合物(Metal-organic frameworks,MOFs)是近 20 年来得到材料科学家们广泛关注的一种新型有机-无机杂化多孔材料。   就在近日,一项由西北大学(Northwestern University)领导的研究团队设计并合成了一种新型的金属-有机框架化合物(MOF),其具有超高的孔隙率和表面积,与传统吸附剂材料相比,它能以更安全的压力和更低廉的成本储存更多的氢气和甲烷。    “我们已经为下一代清洁能源汽车开发出了更好的氢气和甲烷气体储存方法。” 该研究的负责人、西北大学化学系教授 Omar K. Farha 说,“我们利用化学原理设计了原子排列十分精确的多孔材料,从而实现了超高孔隙率。”   该研究结果发表在了 4 月 17 日出版的《科学》杂志上,Omar Farha 实验室的博士后陈志杰为论文的第一作者,以及另一名西北大学化学教授、2016 年诺贝尔化学奖得主之一 Sir Fraser Stoddart 的实验室博士后李鹏浩和科罗拉多矿业大学的 Ryther Anderson 同为论文的共同第一作者。此外

1克材料铺满1.3个足球场!超高孔隙率的神奇材料问世,有望改变整个储气行业|专访

孤街浪徒 提交于 2020-04-20 17:16:13
  氢气和甲烷等能源气体对人们来说,是当下关键且环保的能源载体。 然而如何良好地储存这类气体,是限制人们使用的重要瓶颈问题。   为了寻求一种较好的储存及运输氢气和甲烷的方法,全球的科学家们开展了大量的研究。而金属-有机框架化合物(Metal-organic frameworks,MOFs)是近 20 年来得到材料科学家们广泛关注的一种新型有机-无机杂化多孔材料。   就在近日,一项由西北大学(Northwestern University)领导的研究团队设计并合成了一种新型的金属-有机框架化合物(MOF),其具有超高的孔隙率和表面积,与传统吸附剂材料相比,它能以更安全的压力和更低廉的成本储存更多的氢气和甲烷。    “我们已经为下一代清洁能源汽车开发出了更好的氢气和甲烷气体储存方法。” 该研究的负责人、西北大学化学系教授 Omar K. Farha 说,“我们利用化学原理设计了原子排列十分精确的多孔材料,从而实现了超高孔隙率。”   该研究结果发表在了 4 月 17 日出版的《科学》杂志上,Omar Farha 实验室的博士后陈志杰为论文的第一作者,以及另一名西北大学化学教授、2016 年诺贝尔化学奖得主之一 Sir Fraser Stoddart 的实验室博士后李鹏浩和科罗拉多矿业大学的 Ryther Anderson 同为论文的共同第一作者。此外

设计模式不得不知道的 UML 类图

混江龙づ霸主 提交于 2020-04-19 18:27:53
前言 码字不易,希望大家多提宝贵意见。我们要给别人讲解一个问题的时候,最直观的方法莫过于用图形的方式去讲解,而不是枯燥的文字。毕竟我们还是个孩子的时候,图画更能给我们带来触动,而文字我们因为一些认知的问题会导致一些理解能力上的偏差。设计模式里面的 UML 类图就是可以让你给别人讲解设计理念的时候,不用再是枯燥的代码和文字,而是直接给别人用类图的形式来表达的一种方式。 为了方便大家了解,我会给出对应的类图,以及对应的代码实现,让大家有个初步的概念,方便大家来学习设计模式这枯燥的东西。 我们常见的几种关系:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition),依赖(Dependency)。 继承的类图 继承是我们在 OOP 中最常见的一种方式,让我们可以节约了不少的开发时间。继承也有一些别的文字描述方式:泛化。 它是一种特殊的依赖。 继承就是指一个子类继承了另外一个的功能,并且可以增加它自己的新功能的能力。 表示方法: ​ 继承使用空心箭头 + 实线表示。 示例: <?php declare(strict_types=1); namespace Neilyoz\Example; abstract class BaseExample { public abstract

Scratch 3.9的两个亮点

こ雲淡風輕ζ 提交于 2020-04-07 14:05:25
Scratch 3.9正式版本终于发行了,此前版本为3.6。那么,与其他软件版本更新一样,它的用户都会对新版本充满了期望。那么,这个版本有哪些亮点呢? 更高的要求 前天,我在下载安装后,发现其基本安装要求是Windows7 64位,不再支持32位的WIN7了! MAC版本尚未发行 MAC版本仍然停留在3.6,并未同步发行3.9版本! 仅有两处改进 (一)大的中心点 说来感觉有些可笑。至少从一般用户角色来观察,的确如此!——仅有两个改进! 一处是图形编辑器(或者说是角色编辑器)中心点的改进。因为这个中心点,在精灵(角色)动画过程中是确定其位置的最基础数据,但是,在此前的3.X版本中设计得太小,用户初期进入时,看上去这个中心点就像一个“污点”,停留在画面中央! 另外,当绘画屏幕上有多个对象,例如有多个矩形与圆形,则在对齐它们时变得非常困难。我在处理此类任务时,是先通过放大,以中心点为中心,使用直线工具,绘制一个很大的十字,然后再行操作。 在3.9中,这个点放大了,即用户初步切换到图形编辑器时,这个点就比较大,用户一眼就看出这个大的十字点。 另外,在用户移动画面上的选择的子图形时,这个十字点一直会保持显示于最顶层,即用户能够一直观察到。 上述改进,足以满足前面提到的绘制过程中的许多麻烦了! (二)纠正了导出时的错误 无论是在矢量绘制状态,还是在位图编辑状态

前端组件化-高质高效协作利器

删除回忆录丶 提交于 2020-03-09 16:36:21
小编寄语 在这个“不出门就是给国家做贡献”的日子里,技术委员会提前祝大家元宵节快乐,祝我们的生活像汤圆一样甜蜜圆满。也请伙伴们少出门,勤洗手,戴口罩,为自己和家人的健康保驾护航,同心协力,共克时艰!我们相信阳光会驱散阴霾,一切都会好起来的! 小编今天分享一篇由家长帮倪思远老师带来的技术好文《前端组件化-高质高效协作利器》,本文主要介绍了作者对于组件化的理解以及组内是如何实现组件化的,希望能够对大家有所启发和帮助~ 前言 项目开发过程中,随着业务的不断迭代,很容易暴露以下问题: 1、代码体积会不断增加,代码的冗余会越来越大; 2、业务逻辑复杂度会不断增加,逻辑的可拓展性、可维护性越来越脆弱; 问题的主要原因在于: 1、功能代码的复用方式是简单粗暴拷贝和粘贴; 2、多人协作导致代码耦合度高,后期维护拓展方式不合理; 针对以上问题,在前端项目工程化的基础上,引入前端组件化,从功能模块的复用、通信,及多人协作的层面进行解耦。 预期效果: 1.通过组件化的编码,实现功能的封装和复用,减少冗余 2.通过组件化的协作,实现功能和业务的解耦,高效协作 一.什么是前端组件化? 前端组件化以前经历的过程:面向过程–面向对象–面向模块。 前端业务复杂度的不断提升,传统的以HTML+JQ为主的面向过程的开发方式已经很难满足大型项目的迭代和维护。面向对象方式(继承、封装、多态、实例化构造)、借助模块化加载器