自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 期末报告

期末报告1 自我总结总的来说下这门课的项目中遇到的各种难题与收获吧。1.1 系统设计以前都只是粗略地将系统划分成前端后端,然后写一下对应的代码,套一下框架这样子,每块区域的详细划分基本没有,也导致了最后应用耦合高,可拓展性差。在此门课中应用层根据用户划分,持久化层根据数据划分,以及一些接口设计等知识点这点真的让我收获不少。1.2 分工因为组里面只有我比较熟悉服务...

2018-06-30 17:55:15 430

原创 系统分析与设计 作业9

使用 ECB 实现 make reservation 用例的详细设计(包含用例简介,顺序图,类图)用例简介:用户在UI发出请求,查询可订房间;得到服务器反馈后,选择房间下单,得到支付请求;支付后,订房成功顺序图: 类图: 将逻辑设计类图映射到实际项目框架的包图。用树形结构表述实现的包和类...

2018-06-30 17:46:23 213

原创 JavaScript,Node.js 嵌套异步调用的实现以及注意点

前言使用Node.js实现服务器端时,需要处理不少的异步请求。 有些时候,我们会遇到这种情况: 对于某个数组里面的字符串,你需要依次地通过异步调用的方法向数据库请求数据,即,我先用第一个字符串提交请求,然后在回调函数中用第二个字符串提交请求,以此类推,我们就要像这样调用代码,即:/* *假设有异步函数异步传回 A(para, callback){ ......

2018-06-30 17:41:22 664

原创 系统分析与设计 作业8

1、描述软件架构与框架之间的区别与联系软件架构是一种指导方法,并不是一个具体实现。 软件框架是基于具体语言的一个架构实现。 软件框架可能包含若干软件架构,并作出了一定修改和改进。2、以你的项目为案例绘制三层架构模型图,细致到分区结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利逻辑图如下 物理图如下优点:可以让程序员专注于某个分区功能的开发,便于快...

2018-06-03 17:51:23 245

原创 系统分析与设计 作业7

1、业务描述文档地址Google翻译app2、UML用例图3、图片翻译功能 UML活动图4、领域模型真正需要保存的东西很少,只有历史翻译以及收藏翻译5、UML状态图6、UML系统顺序图...

2018-05-13 02:56:05 261

原创 系统分析与设计 作业6

系统分析与设计 作业61、使用 UML State Model建模对象: 参考 Asg_RH 文档, 对 Reservation/Order 对象建模。建模要求: 参考练习不能提供足够信息帮助你对订单对象建模,请参考现在 定旅馆 的旅游网站,尽可能分析围绕订单发生的各种情况,直到订单通过销售事件(柜台销售)结束订单。2、研究淘宝退货流程活动图,对退货业务对象状态建模

2018-05-06 18:17:03 159

原创 系统分析与设计 作业5

系统分析与设计 作业5a. 阅读 Asg_RH 文档,按用例构建领域模型。 按 Task2 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸说明:请不要受 PCMEF 层次结构影响。你需要识别实体(E)和 中介实体(M,也称状态实体)在单页面应用(如 vue)中,E 一般与数据库构建有关, M 一般与 store 模式 有关在 java web 应用中,E 一般与数据库构建

2018-04-29 21:33:00 125

原创 系统分析与设计 作业4

1、 用例建模a. 阅读 Asg_RH 文档,绘制用例图。 按 Task1 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸b. 选择你熟悉的定旅馆在线服务系统(或移动 APP),如绘制用例图。并满足以下要求:对比 Asg_RH 用例图,请用色彩标注出创新用例或子用例尽可能识别外部系统,并用色彩标注新的外部系统和服务答:此处选择了携程网的预订系统进行绘图。c. 对比两个时代、不同

2018-04-22 21:05:21 210

原创 GitHub Gui 遇到的小问题总结

GitHub Gui 遇到的小问题总结前言虽然图形界面是比直接用bash直观了很多,但是没有用习惯的情况下,还是很容易多种功能找不到的。在此简单记下自己遇到的各种问题以及解决方案。1、无法打开git解决方案:请保证目录不要包含中文2、同步仓库的方法首先,点击菜单栏的Remote->Fetch,选择需要同步的分支(我这里master也在origin中,所以点击origin就好) 然后还需要在本地合并

2018-04-15 20:16:27 249

原创 系统分析与设计 作业2

1、简答题简述瀑布模型、增量模型、螺旋模型(含原型方法)的优缺点。瀑布模型,其将软件生命周期归结为顺序工作流程:构思阶段,需求分析阶段,设计阶段,开发阶段,测试阶段,发布上线阶段。 其优点为将项目划分为具体的流程与检查点,通过检查后,人们只需要关注之后的工作,而不需要再花心思对先前的东西进行修改。缺点则在于假如错误发现较晚,回溯的成本会相当高。增量模型,将软件的各项不同功能划分为不同增量,每次只

2018-03-22 19:38:45 167

原创 系统分析与设计 作业1

1、简单题1.1软件工程的定义 用自己的语言归纳,就是如何系统化地去书写和维护一个程序1.2阅读经典名著“人月神话”等资料,解释 software crisis、COCOMO 模型。 software crisis,电脑发展较快,传统的软件生产已经无法满足需求 COCOMO 模型,一种用于评判软件工期的模型,主要通过源指令条数,工时以及进度来评判1.3软件生命周期 软

2018-03-15 23:52:29 197

原创 LeetCode 650: 2 Keys Keyboard 解题与思考

LeetCode 650: 2 Keys Keyboard 解题与思考[原题链接]题目描述一个键盘只有两种操作: 1、复制当前所有字符串(不能部分复制) 2、粘贴剪贴板上的字符串当前输入为一个字符“A”,输入n(n < 1000),输出最少需要经过多少步操作,才能得到n个“A”思路最先注意到,既然不能部分复制,那么也就是说,假如n是个质数,那么最少就需要n次操作(1次复制,n-1次粘贴)。那么将

2018-01-21 21:58:49 827

原创 LeetCode 42: Trapping Rain Water 解题与思考

LeetCode 42: Trapping Rain Water 解题与思考[原题链接]题目描述给出一个数列ana_n,代表一连串的障碍的高度,求下雨时能够困住的水的体积思路我们从左开始遍历数组,先记录当前最高的障碍物,当找到一个更高的障碍物时,这中间就会有水困住。 但是这么做的话,会有可能在找到一个最高的障碍物之后,后面有一个次高的障碍物,这两个障碍物之间也困住了水,但是因为算法问题,这段水没算

2018-01-21 21:21:54 236

原创 LeetCode 174: Dungeon Game 解题与思考

LeetCode 174: Dungeon Game 解题与思考[原题链接]题目描述给一个M×N的地图,每个格子有一个数字,负数为扣减生命值,正数为增加生命值,当生命值小于等于0时角色死亡,求解从地图左上角到右下角所需的最小生命值。思路题目限定了骑士只能往右或者下走,给我们提供了很大方便。 不过直接从左上DP到右下不是很理智,因为没有确定初始生命值,不能很好地把握角色死亡的标准。 然而在到达右下

2018-01-03 02:46:22 227

原创 EXACT 4SAT NP-Complete 规约证明

EXACT 4SAT NP-Complete 规约证明EXACT 4SAT问题描述输入一组子句,每组子句中为四个元素的并,且每个元素在每个子句中最多只出现一次,求子句交集为真的可行元素赋值。证明流程1、证明EXACT 4SAT为NP问题 即证明EXACT 4SAT的解能在多项式时间中验证。 这个是显然的,因为假设子句个数为k,那么最多所需时间为4k,为O(k)复杂度。2、证明EXACT 4SAT

2018-01-03 01:55:31 571

原创 LeetCode 494: Target Sum 解题与思考

LeetCode 494: Target Sum 解题与思考[原题链接]题目描述给出n个数字,在其间添加加号或者减号,获得某个目标和,求不同的符号添加方法的数目。思路显然的n-1个数字能够得到哪些数字,决定了n个数字能够得到哪些数字。 所以我们从第一个数字开始,求所有能够得到的数字,一直递推到第n个即可。 所幸题目状态空间不大,可以直接用数组保存所有状态。算法准备两个数组,下标表示目标和,值表示

2018-01-03 01:03:04 193

原创 LeetCode 486: Predict the Winner 解题与思考

LeetCode 486: Predict the Winner 解题与思考[原题链接]题目描述一组数字,两人轮流去取,每次只能取头部或者尾部,直到把所有数字取完,拿到最大的数字和的获胜,返回先手的人是否可以获胜。思路这个问题和人工智能中的一个最大最小搜索算法类似,有兴趣的可以查找。解决问题的突破口在于,确立先后手概念。 也就是说,在第一个人(不妨命名为A)先选择一个数字后,他就相当于在剩余的数列

2018-01-02 12:03:54 217

原创 LeetCode 343: Interger Break 解题与思考

LeetCode 343: Interger Break 解题与思考[原题链接]题目描述要求将一个数分解为至少两个正整数,并要求求分解之后的所有数的乘积最大,求这个最大值。思路:不妨设我们要求的结果为$S(n)$。 假设有自然数n,将其划分成自然数j(j取值1到n-1),以及其余部分n-j,那么显然其能取得的最大乘积为$j*S(n - j)$,在这种情况下该问题有着最优子结构,问题转换成求在n-j

2018-01-02 11:11:37 158

原创 LeetCode 123: Best Time to Buy and Sell Stock 3 解题与思考

LeetCode 123: Best Time to Buy and Sell Stock 3 解题与思考[原题链接]题目描述这次你只能买两次,依旧需要先抛掉手上的才能买下一只,求最大利润思路可以先将数列切割成两部分,我在左边获得的最大利润加上右边的最大利润,其最大值则为所求。也就是说可以变成两个LeetCode 121求解。不过要注意的是直接调用121的函数会超时,所以还要稍微作修改。我们在121

2017-10-31 21:33:14 204

原创 LeetCode 122: Best Time to Buy and Sell Stock 2 解题与思考

LeetCode 122: Best Time to Buy and Sell Stock 2 解题与思考[原题链接]题目描述相比上一道题,这次你可以买很多次,但是你每次最多只能持有一只股票:你在抛出上一只股票之前无法买下一只。求最大利润思路一旦即将降价就抛售,即将升价就买入,没什么好说的算法顺序遍历数组,记录一下是否上升下降,是否需要买入卖出代码#include <iostream>#inclu

2017-10-31 20:50:46 186

原创 LeetCode 121: Best Time to Buy and Sell Stock 解题与思考

LeetCode 121: Best Time to Buy and Sell Stock 解题与思考[原题链接]题目描述给定一个数列{ana_n},其中aia_i 为第i天的股票价格, 假设你在这些天只能选择买入卖出一次,求最大利润。思路自然我们不能简单地通过寻找最大最小值来确定哪天买入卖出,因为这样可能高开低走,得到错误结果。不过我们可以在顺序扫描数组时,维护扫描过的数的最小值以及扫描过的数中的

2017-10-31 20:32:42 155

原创 LeetCode 679: 24 Game 解题与思考

LeetCode 679: 24 Game 解题与思考[原题链接]题目描述就是24点啦,给你四个数字,判断能否得出24点思考没得讲,直接枚举 看起来真的挺荒谬:不过仔细想想,4个数字全排列24种可能,3个符号64种可能,对称重复除以2,总共也不超过24 × 64 ÷2 = 768种可能;考虑加法和乘法的交换,情况还要更少一点算法枚举也没什么算法可言了代码#include <iostream>#i

2017-10-31 20:04:14 1277

原创 LeetCode 410: Split Array Largest Sum 解题与思考

LeetCode 410: Split Array Largest Sum 解题与思考[原题链接]题目描述给定一个数列{ana_n},以及集数m,要求在不改变{ana_n}中元素先后顺序的前提下,将其分成m个子集,每个子集中的数字求和,题目寻找一个分法,使得所有和中的最大值最小。思路万事万物皆可DP,真的一开始想的就是将这个问题分解为两个子数列,其中一个作为一个集合,另外一边则变为求某个数列分成m-

2017-10-31 18:19:27 805

原创 LeetCode 514: Freedom Trail 解题与思考

LeetCode 514: Freedom Trail 解题与思考[原题链接]题目描述我们有一个轮盘,轮盘上有一个首尾相接的字符串S,我们有如下操作 1、转轮盘到下一个或者上一个字符,需要一步操作 2、输出当前字符,需要一步操作 假如我们有目标字符串K,求取出K的最小操作步数思路第一感觉就是用DP,因为看上去除去末尾的“上一个字符串”所需要的距离,加上从上一个最小距离,然后求极小值,就是所需答

2017-10-30 20:53:56 431

原创 LeetCode 94: Binary Tree Inorder Traversal 解题与思考

LeetCode 94: Binary Tree Inorder Traversal 解题与思考[原题链接]题目描述实现非递归的树的中序遍历思路当然也还是和之前的后序遍历一样要用到栈,这次将节点输出的时间是访问其右子树之前。 而当我们在栈中找到一个节点时,它很明显是之前被我们访问过,并在访问左子树之前压栈的;那么我们只要选择在需要用到栈顶元素时输出就好。算法前期准备:一个节点栈,一个答案数组 1

2017-10-11 01:01:45 136

原创 LeetCode 144: Binary Tree Preorder Traversal 解题与思考

LeetCode 144: Binary Tree Preorder Traversal 解题与思考[原题链接]题目描述实现非递归的树的前序遍历思路当然也还是和之前的后序遍历一样要用到栈,而最好的地方就是当前节点访问完就可以立即输出。不过当前节点还是要依次压栈的,因为你还要通过栈内的点来确定什么时候访问它的右子树。算法前期准备:一个节点栈,一个答案数组 1、对于一个节点,将其入栈,并且将其加入答案

2017-10-11 00:56:08 129

原创 LeetCode 23:Merge k Sorted Lists 解题与思考

LeetCode 23:Merge k Sorted Lists 解题与思考[原题链接]题目描述将若干个有序数列合并成一个,简单点说就是归并排序的第二步思路很显然,只需要对所有数列的头部进行遍历,每遍历一次取出最值就好。当然,作为通过率较低的hard题目,其需要考虑的情况也不少。我最先想到的是需要判断数列顺序的升降序,结果没能ac,因为leetcode还特别喜欢测试空数组的情况。不过只要好好考虑了这

2017-09-24 22:54:44 118

原创 LeetCode 145:Binary Tree Postorder Traversal 解题与思考

LeetCode 145:Binary Tree Postorder Traversal 解题与思考[原题链接]题目描述就是非递归的二叉树后续遍历思路通常来讲,将递归变为循环,都会想到用栈来模拟递归的过程;本题也不例外,只是需要考虑何时入栈何时出栈。假设我们访问到一个节点,此时它的左右子树未访问;我们按照后序遍历的顺序,先访问左子节点,此时我们应该将当前节点压栈,因为在将左子树访问完毕之后,我们需要

2017-09-17 22:26:01 220

原创 LeetCode 312: Brust Balloon 解题与思考

LeetCode 312: Brust Balloon 解题与思考[原题链接]题目描述题目会输入一个长度为n的数列ana_n(n从0开始算),你需要从中按照一定顺序取出所有的数字;每次取出一个数字aka_k时,你将得到该数字与其左右相邻数字的乘积的分数ak−1∗ak∗ak+1a_{k - 1} * a_k * a_{k+1}。 几点注意:最左边的数的左边,以及最右边的数的右边视为1(a−1=an

2017-09-10 01:05:49 861

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除