本系列导航:剑指offer(第二版)java实现导航帖 面试题2:实现单例模式 题目要求: 设计一个类,只能生成该类的一个实例。 package chapter2; /** * Created by ryder on 2…
分类:架构
动态规划. 换钱的最少货币数和最多方法数
通过对换钱类题目的学习,我们将了解到 暴力递归及优化方法 记忆搜索(优化一) 动态规划的基本实现方法(优化二) 动态规划的空间优化(优化三) 1. 换钱的最少货币数,货币可重复使用 给定数组arr,arr中所有的值都为正…
为什么应该要做好项目结构的规划
首先,先说明一下“规划项目结构”具体的工作内容是什么。以二个常见的程序开发平台来说,不管是用 Visual Studio 来开发 .NET 的程序,还是用各种 IDE 来开发 Java 的程序,都会有一组用来辅助 IDE…
推酷《编程狂人》第一六零期
推酷诚意满满的技术周刊《编程狂人》, 下面是内容列表,干货多多,也可以移步到官网进一步阅读。 前端开发 听说 2017 你想写前端? 高效的 JavaScript 2017 前端性能优化清单 使用vue.js构建一个知乎…
剑指offer第二版-不使用新的变量完成交换两个原有变量的值
本系列导航:剑指offer(第二版)java实现导航帖 面试题:不使用新的变量完成交换两个原有变量的值 题目要求: 不使用新的变量完成交换两个原有变量的值。 解题思路: 有加减法与亦或法两种,其实思路是一致的。推荐亦或法…
设计模式(六)——建造者模式
本文属于系列文章《设计模式》,附上文集链接 建造者模式 定义:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 要解决的问题:看定义就看到了,首先,针对的问题是复杂对象的构建,其次,对这些复杂…
Java线程并发之锁
既然java内置了synchronized,为什么还要出现lock呢? 由于synchronized的并发是阻塞的。当一个线程获得了锁,并执行其代码时,其它线程便只能等待锁的释放。 在这里要释放锁有如下情况: 正常…
java命名规范
一、注()里的内容是自己的吐槽 二、命名规约 1.不能以下划线或美元符开始和结尾。反例:_name,$name,name_,name$.(我就从来没这样用过) 2.不能使用拼音和英文组合方式命名。更不能以拼音命名(英语烂…
设计模式(四)——抽象工厂模式
本文属于系列文章《设计模式》,附上文集链接 不知道看上一篇的时候,有没有看到一个问题,如果只是简单的工厂,为什么要一个抽象工厂类?那个抽象类完全没必要啊,直接用一个工厂类,传入class参数,不就行了吗?这里就来了,抽象…
发布和逸出
概念 发布一个对象(publish): 使对象能够在当前作用域范围之外的代码中使用; 逸出(escape): 当某个不应该发布的对象被发布出去的情况; 发布对象的两种方法: 将对象的引用保存到一个公有的静态变量中…
lintcode 二叉树的层次遍历
给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 3 / 9 20 / 15 7 返回他的分层遍历结果: [ [3], [9,20], [15,7] …
C++的std::sort排序所使用的函数对象工厂踩坑记录
注:本文的内容并非C++11。不知道目前是什么情况,是否能够解决这个问题。 在工作中,遇到了这样一种情况: 使用std::vector<MyClass>存储了一系列数据,用于表格展示,MyClass中的每一个…