xiaobai050

xiaobai050

模板方法模式和策略模式
发表于2017-04-03
模板方法模式有多个相似的类,找到他们的共性,抽象出来,放入公共的抽象父类,作为模板。 策略模式1.将算法封装成算法类,变抽象为形象(让不同的算法【抽象】,变成一个个算法策略【形象】)2.将算法选择逻辑与算法本身解耦(由算法内部if-else代码级耦合【难以维护】,变为客户端选择算法类实例的耦合【灵活】) 不用策略模式:123456if(客户=="老客户"){ price*=0.8;}else if(客户=="大客户"){ price*=0.9;}return price; 用策略模式:12345678910class OldCustomer implements Strategy{ public int getPrice(int price){ return price*0.8; }}class BigCustomer implements Strategy{ public int getPrice(int ...
Echarts坑-动态折线图更新时跳动
发表于2017-03-18
用Echarts做动态折线图,参照->这个demo每次新插入一个点并删除最前面的点,实现随着时间平滑移动。但遇到一个问题,更新数据时会产生跳动。 一番试验找到原因,是定义的data格式问题。是我把demo中的randomData()函数改了个格式 12345function randomData() { var now = new Date(); var value = 1 + (Math.random() - 0.5) * 2; return [now, value*1000]} 改完虽然能运行,能实时更新数据,但每次插入一个数据,绘图呈现的效果就是重新绘制全图一样,有一个从水平线扩展成折线图的感觉,所以造成了图形不停跳动。当然,demo中并没有这样的跳动,是很稳定的平移。 解决方法:改成以下格式,也就是demo给出的格式 1234567891011function randomData() { now = new Date(); value = Math.random() * 21 - 10; ret...
群视频课笔记——码农翻身
发表于2016-10-13
笔记 六个月,能否学好web开发? 不够,六个月只够学习一门技能。 跟对老板、师傅,能有更多收获,不用重视薪资。 在做普通项目中脱颖而出? 做好项目本身尽量主动,比如重构代码。忌讳让做什么只做什么 如何看源码? 1.跑起来2.看业务 Redis集群如何学习 难以模拟实际应用的大量数据,项目遇到再深挖较好。否则只搭建没用。 为何跳槽? 不想只做SSH,找喜欢的方向深入(做引擎) 重基础: 操作系统&网络 大数据: 建模更重要 如何表述做过的项目? 1.业务2.架构3.做的工作 JDBC:必会 混合开发能否代替原生APP? 不能 反射常用吗? 直接不常用,间接常用(框架中) 需要掌握全部设计模式。 如何学习框架? 1.书2.项目 编译原理:不需深入了解,除非写语言 PHP:Facebook,新浪 Java:生态繁荣,适合大规模团队协作 数据结构用处? 锻炼思维,分析算法实现过程,注重效率即可,不需背记复杂数据结构 需要定制Nginx——学C语言的好机会 学习资源 网站:imooc...
Hexo+GitHub Pages多终端同步
发表于2016-10-11
2016年11月8日更新:11月3日下午Github Pages升级了Jekyll,导致了next主题下source/vendors路径下的部分js和css无法访问。解决:在.deploy_git目录中加入名为.nojekyll的空文件。 原文: 博客用Hexo+GitHub Pages搭建,托管在GitHub的一个仓库中,仓库分两个分支:hexo和master。hexo作为默认分支,存放博客源代码,master分支存放博客生成页面。如何实现多终端同步? 为了筛选出配置文件、主题目录、博文等重要信息,作为需要GItHub管理的文件,配置.gitignore文件如下: 1234567.DS_StoreThumbs.dbdb.json*.lognode_modules/public/.deploy*/ 需要多机同步时,只需将hexo分支clone到本地,再进入目录安装npm即可。处理命令如下: 1234git clone https://github.com/xiaobai050/xiaobai050.github.io.gitcd xiaobai050.githu...
青蛙过河问题
发表于2016-09-25
LeetCode:403. Frog Jump 版本一深度优先搜索:从头至尾遍历石头,从每个石头上分别以k-1,k,k+1的力量向前跳一下,如果这三个力量范围内没有石头,则返回;否则继续先前跳一下……直至到达最后一个石头。 没有记忆功能,每次遍历需全盘重新计算,时间复杂度O(3^n),石头多了会超时。于是加入记忆搜索,有了版本二。 版本二迭代+记忆搜索:加入记忆搜索,为每块石头建立一个力量表,每到达一块石头,就把这一跳所用的力度记录在这块石头的力量表中。这样一来,一块石头是否可以到达,取决于这块石头的力量表是否为空。 题目要求第一跳力度为k=1,则在石头1上记录力量k=1,然后从第二块石头开始遍历: 对于第i个被遍历的石头,判断从石头1到石头(i-1)范围内的每一个石头上,是否存在跳到石头i上的力量,如果存在(代表能跳到石头i上),则在石头i的力量表中添加这个力量值。 所有石头遍历完,判断最后一块石头的力量表是否为空,则得出是否能到达最后。 12345678910111213141516171819202122232425262728293031323...
LeetCode答题框架(Java+Eclipse)
发表于2016-09-20
记录我的LeetCode答题框架。我在LeetCode中答过的题代码全部托管在GitHub:xiaobai050/leetcode 最初在LeetCode上学习在线编程时,由于不熟练,脑中还没有答题的框架,测试用例、待提交代码、入口方法之间的耦合过大,添加、修改测试用例需要修改源代码,导致调试效率过低,不够优雅。 为了尽可能方便调试,高效编辑,分离测试用例和算法实现,改进整理出了自己顺手的答题框架,记录下来。万事开头难,如果能帮助到想我当初一样迷茫的初学者,就更好不过了:) 目录结构: LeetCode ——项目名称,方便Eclipse内置Git对代码进行管理和多终端同步 pid1 ——题目包,每个题目封装在一个单独的包中,包名用LeetCode题目编号表示 Solution.java ——算法类,注意到LeetCode每道题目的代码类名为Solution Main.java ——包含主函数(控制逻辑、测试用例数组)、测试函数(测试结果输出、算法耗时) pid2 Solution.java Main.java 以具体题目为例:96. Unique...
平衡二叉树学习
发表于2016-09-13
平衡二叉树平衡二叉树的特点是,小的值在左边,大的值在右边。 用VisuAlgo画一个简单的平衡二叉树: 再随机生成一个: 可以发现规律:整棵树中,所有节点的值从左至右逐渐增大。 什么是高度平衡(AVL)二叉树?WiKi解释如下: 在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。 高度平衡树经常涉及到旋转这个概念,简单来说就是高度平衡树插入或删除某个节点可能破坏平衡,这时就需要旋转一些(3个)节点来恢复树的平衡。旋转哪三个呢?实际上只有四种情况,根据不同情况选择不同的旋转方法。很多人讲得很详细,不搬运了,可以参考这里:高度平衡的二叉搜索树(AVL树)-逝者如斯,不舍昼夜。 AVL树的四种旋转 由于整棵树中,从左至右逐渐增大,旋转可理解为左右顺序不变,垂直映射到
递归学习
发表于2016-09-08
递归、循环的区别: 循环:循环嵌套层数由代码结构决定,维度不可变。 递归:能产生循环嵌套,可以扩展循环层数。 举例:遍历所有组合—— C6取3# [1,2,3] [1,2,4] [1,2,5] [1,2,6] [1,3,4] [1,3,5] [1,3,6] [1,4,5] [1,4,6] [1,5,6][2,3,4] [2,3,5] [2,3,6] [2,4,5] [2,4,6] [2,5,6][3,4,5] [3,4,6] [3,5,6][4,5,6] 循环: 123456789for(int i=1;i<=4;i++) for(int j=i;j<=5;j++) for(int k=j;k<=6;k++){ temp.set(0, i); temp.set(1, j); temp.set(2, k); rtn.add(temp); } 每个数组有三个元素,用三层for循环。 递归: 123456789101112131415//计算C6取3//遍历数字范围:s...
123
avatar
Bai
Remember by heart.
文章
28
标签
29
分类
1
Follow Me
公告
This is my Blog
最新文章
AI Skill 编写建议:让工具更稳定地完成具体任务2026-05-02
Review 一个 Agent Skill 时看什么2026-04-09
小 Skill 往往比大 Prompt 更好维护2026-03-14
Agent 调用工具前,可以先过一遍这张清单2026-01-26
给 Agent 设计结构化输出,不只是为了好看2025-12-21
分类
  • 技术笔记18
标签
RAG 可视化 日志 工具 hexo Skill HTTP AI Git Java Agent REST 基础 二分查找 Docker 备忘技巧 Review 并发 Web 笔记 设计模式 算法 Linux 文档 工程实践 设计模式 学习 填坑 ECharts Nginx
归档
  • 五月 2026 1
  • 四月 2026 1
  • 三月 2026 1
  • 一月 2026 1
  • 十二月 2025 1
  • 十一月 2025 1
  • 八月 2025 1
  • 六月 2024 1
网站信息
文章数目 :
28
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By Bai框架 Hexo 8.1.1|主题 Butterfly 5.5.4