摘要: 本文以故事方式介绍工厂模式以及抽象工厂模式的一些知识,本文出现的人名为化名 周末闲来无事,小可爱给大漂亮说想吃烤红薯,让大漂亮做给小可爱吃,大漂亮有点为难了,一个堂堂七尺扣脚大汉,怎么会做烤红薯这种精细的事情呢。但是耐不住小可爱的执着,大漂亮于是决定现学现做,首先大漂亮去网上找了一个合适的教程,准备 阅读全文
posted @ 2022-11-22 16:29 竹林溪风 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 设计模式 设计模式这一概念最早起源于建筑领域,是Christopher Alexander在其著作《建筑模式语言》中首次提及, 而后经过岁月的洗礼与沉淀,由我们的前辈们引入到软件设计领域, 其作为一种设计问题的思想,经过众多软件开发前辈们经过反复的实践和踩坑之后得到的经验,逐渐趋于成熟和完善。应用这 阅读全文
posted @ 2022-11-18 10:59 竹林溪风 阅读(122) 评论(0) 推荐(0) 编辑
摘要: Jquery LigerUI Tree是Jquery LigerUI()的插件之一,使用它可以快速的构建树形菜单。呵呵 废话不说了,直入正题,下面介绍C#结合ligerui 构造树形菜单的两种方法1、ID/PID格式JqueryLigerUI官网上的例子是这样的: 1 2 3 4 5 6 7 8 9 36 37 38 39 40 41 42 43 44 45 46 Jquery LigerUI Tree官方示例源代码很明显,通过研究其数据格式可以知道以下几点1、数... 阅读全文
posted @ 2014-02-24 10:52 竹林溪风 阅读(2392) 评论(1) 推荐(2) 编辑
摘要: 在年前上班的时候遇到了一个问题是这样描述的:我前台设计一个页面,是标签和文本框,当用户修改了哪个文本框的值,将该修改前的值、修改后的值,该值对应的字段,该值对应的行id获取到保存到数据库的某张表里。现在数据库有一张表,结构如下:修改记录表ID 修改行ID修改列名称修改前的值修改后的值所属修改批次修改时间1 1test10112013-10-11 第一批次2013-10-11思路:1、将数据封装成实体对象传到后台。整套下来是用MVC的机制实现的2、利用反射。获取对象的字段名称、修改前的值、修改后的值3、调用保存方法。将修改记录保存到数据库。4、下面贴上主要实现代码,里面包含设计实现思路: 1.. 阅读全文
posted @ 2014-02-08 15:05 竹林溪风 阅读(3093) 评论(1) 推荐(0) 编辑
摘要: 本人是Android新手,最近做了一个关于监听手机短信功能的应用,我在网上看资料了解到广播分为有序广播和无序广播,有序广播;无序广播又称普通广播,其中的利弊我也一时没搞清楚,我用的是有序广播实现的,具体思路如下1、定义一个接收短信的广播2、当系统接收到短信时,拦截短信,获取短信内容3、将指定的短信内容转发到服务器下面是我的实现方法1、添加一个短消息接收类 1 import java.util.ArrayList; 2 import java.util.HashMap; 3 import java.util.List; 4 import java.util.Map; 5 import org.a 阅读全文
posted @ 2013-11-02 09:48 竹林溪风 阅读(1485) 评论(3) 推荐(2) 编辑
摘要: 在vs中打开mvc3项目,虽然装了mvc3,但是还是会遇到莫名其妙的错误,这是我在做开发的时候遇到的一个问题,附带解决方案,和大家分享一下问题描述:无法打开项目文件“E:\我们的项目\Project\HeatingMIS.Web\HeatingMIS.Web.csproj”。解决方案:右键单击未加载的项目,选择编辑.csproject,找到节,会发现此节包含三个带{}的GUID,接着要做的是将前两个GUID替换为{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};然后保存,重新加载项目即可最 阅读全文
posted @ 2013-10-09 15:04 竹林溪风 阅读(366) 评论(1) 推荐(0) 编辑
摘要: Silverlight5 Tools在安装的时候往往会提示以下错误解决办法:解压Silverlight5 Tools.exe,打开ParameterInfo.xml文件,将其中的1033全部替换为2052,然后执行SPInstaller.exe文件即可,执行后的界面如下:注意:安装的时候关闭vs,以管理员的身份运行Silverlight5 Tools下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=28358 阅读全文
posted @ 2013-10-09 14:19 竹林溪风 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 验证码刷新 账 号: 密 码: ... 阅读全文
posted @ 2013-08-29 09:54 竹林溪风 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 刚学习Silverlight,做了一个动态创建控件的实例实现结果:根据已有的控件类名称,得到控件的实例化对象实现思路1:就是定义一个模板文件,将类名做为参数,在silverlight中使用SreamWriter生成对应的文件,以便使用。但是,silverlight比较蛋疼的一点就是不能直接对文件进行操作,不论是读还是写都不成功,可能与silverlight的安全机制有关,没有对文件操作的权限。浪费了我一下午寻找解决方案,始终未果。实现思路2 :由于思路1的不可行性,我就换了另一种思维,实现了效果,非常简单,只需三、四行代码。看来原来真的是想多了,下面贴上代码 1 #region... 阅读全文
posted @ 2013-08-16 15:13 竹林溪风 阅读(464) 评论(0) 推荐(0) 编辑
摘要: Spring的核心技术室依赖注入,下面是依赖注入之属性注入的实现过程,牛刀小试,请看效果。1、首先添加Spring.Web引用。本例中是使用分层思想来演示的,下面是项目的结构和UserModel类的内容,为了简单操作,只有一个Name属性2、修改Web.Config文件,配置注入环境 添加Spring的SectionGroup 添加HttpModule配置 --> 添加HttpHandler配置 ... 阅读全文
posted @ 2013-07-09 19:29 竹林溪风 阅读(416) 评论(1) 推荐(0) 编辑
摘要: 显示xml数据 1 /// 2 /// 文件列表 3 /// 4 /// 文件名 5 /// 文件类型 6 /// 文件大小 7 /// 上传时间 8 /// 下载次数 9 /// 10 /// 返回结果11 private bool FileList(string FileName, string FileType, string FileSize, string UpLoadTime, int DownCount,string Path,string NPath, HttpContext c... 阅读全文
posted @ 2013-02-03 14:45 竹林溪风 阅读(532) 评论(0) 推荐(0) 编辑

A small frog wants to get to the other side of a river. The frog is initially located on one bank of the river (position 0) and wants to get to the opposite bank (position X+1). Leaves fall from a tree onto the surface of the river.

The goal is to find the earliest time when the frog can jump to the other side of the river. The frog can cross only when leaves appear at every position across the river from 1 to X (that is, we want to find the earliest moment when all the positions from 1 to X are covered by leaves). You may assume that the speed of the current in the river is negligibly small, i.e. the leaves do not change their positions once they fall in the river.

You are given an array A consisting of N integers representing the falling leaves. A[K] represents the position where one leaf falls at time K, measured in seconds.

For example, you are given integer X = 5 and array A such that:

A[0] = 1

A[1] = 3

A[2] = 1

A[3] = 4

A[4] = 2

A[5] = 3

A[6] = 5

A[7] = 4

In second 6, a leaf falls into position 5. This is the earliest time when leaves appear in every position across the river.

Write a function:

def solution(X, A)

that, given a non-empty array A consisting of N integers and integer X, returns the earliest time when the frog can jump to the other side of the river.

If the frog is never able to jump to the other side of the river, the function should return −1.

For example, given X = 5 and array A such that:

A[0] = 1

A[1] = 3

A[2] = 1

A[3] = 4

A[4] = 2

A[5] = 3

A[6] = 5

A[7] = 4

the function should return 6, as explained above.

Write an efficient algorithm for the following assumptions:

  • N and X are integers within the range [1..100,000];
  • each element of array A is an integer within the range [1..X].

有一只小青蛙想去河的对面。小青蛙初始在河的一边,位置为(position 0),想去到河的对面位置为(position X)。河边有一颗树在掉落树叶,小青蛙无法直接过河,只能在position0-position X都有连续树叶的时候才能过河。假设河的距离是X,从河的一边到另一边是1-X, 假设1-X是连续的。设数组A存储掉落的树叶的位置集合,数组的索引是K是掉落时的时间 单位是秒,假设当最后一个位置落上树叶时,青蛙可以过河。目标是找到一种简单有效的方法去到达河对岸。

 

例如:当河道距离X为5的时候,落叶集合为A = [1,3,1,4,2,3,5,4], K为A的索引即树叶下落的时间

K(树叶下落时间) X 河道位置 有树叶的位置 是否可以过河
0 A[0]=1 1
1 A[1]=2 1,2
2 A[2]=1 1,2
3 A[3]=4 1,2,4
4 A[4]=2 1,2,4
5 A[5]=3 1,2,3,4
6 A[6]=5 1,2,3,4,5

由上表可知,当第6秒的时候,河道所有位置都有树叶,小青蛙可以过河

基于以上分析,我们可以给出算法结构

1. 定义一个数组长度为L,存储已经落下的树叶的时间

2. 遍历树叶集合,将位置上最早落下树叶的时间存储到L

3. L中最大的元素即是最后一片树叶落下的时间

下面看一下代码

def solution1(X, A):    
    earliestTime = -1
    L = [-1]*X
    
    for i in range(len(A)):
        if L[A[i] - 1] == -1:
           L[A[i] - 1] = i
    minv = min(L)
    maxv = max(L)
    if minv == -1:
       earliestTime = -1
    else:
        earliestTime = maxv
    return earliestTime

当然,算法肯定不止这一种,如果有更简便高效的算法,希望可以互相交流学习

posted @ 2022-12-23 15:03 竹林溪风 阅读(177) 评论(0) 推荐(0) 编辑
摘要: JIRA集成总结 由于工作需要, 系统需要集成JIRA API去自动创建ticket, 期间几乎没有遇到太多坑, 可能和JIRA API document规范有关吧, 不得不说,JIRA API document 是我见过的比较规范的文档之一. 通过阅读JIRA API Document, 我们可以 阅读全文
posted @ 2022-11-29 17:05 竹林溪风 阅读(508) 评论(4) 推荐(0) 编辑
摘要: Description An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last el 阅读全文
posted @ 2022-09-14 13:40 竹林溪风 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 定义: A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary repres 阅读全文
posted @ 2022-09-13 16:07 竹林溪风 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 定义描述 定义对象间的一种或多种依赖关系,当一个对象发生改变时,所有依赖于它的对象都会被通知自动更新。观察者模式主要角色有目标对象(被观察者),观察者。根据定义描述,我们可以简单的理解成观察者观察目标对象的行为做出相应反应。 举个很经典的例子,猫叫了,主人醒了,老鼠跑了。这里猫就是被观察者,老鼠和主 阅读全文
posted @ 2022-09-09 16:06 竹林溪风 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 随着面向对象技术的应用普及和成熟,使其在解决一些扩展性和灵活性的问题上表现出色。但是随着系统的复杂性的增加,系统新增的类和其对象也是日渐增多,当对象数量过多时,会占用大量内存空间,导致运行代价过高,系统性能下降问题。 享元模式的诞生就是为了解决这些问题。通过共享技术重用相似或者类似的对象,可以共享的 阅读全文
posted @ 2022-09-08 16:26 竹林溪风 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 问题描述 在开发过程中, API采用restful的定义风格,所有的参数都放到了URL 里面,GET v1/order/{deviceId}, 由于没有考虑到目标参数可能包含特殊字符, 所以当QA测试的时候就会发现这个scenario是failed。 调用API会返回404。其实当时设计的时候也有相 阅读全文
posted @ 2022-09-08 14:22 竹林溪风 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 一直用ajax好长时间了,对其原理也有一些了解,最近由于项目需要,使用ajax异步进度条的效果,就研究了一下,用原生的XMLHttpRequest实现进度条函数,XMLHttpRequest有以下函数可以使用,摘自(https://www.w3.org/TR/progress-events/) 进度 阅读全文
posted @ 2016-07-28 16:52 竹林溪风 阅读(2930) 评论(1) 推荐(1) 编辑
点击右上角即可分享
微信分享提示