自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 适配器模式(Adapter Pattern)理解

适配器模式 定义 将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性。让原本因接口不匹配不能一起工作的两个类可以协同工作。 场景: 1、开发时需要调用的第三方API并没有拿到,先写个接口并mock个实现类,拿到接口之后再一个适配器进行适配(代码整洁之道第八章提到); 假定这样一个场景会比较容易进行理解 伪代码如下 ​ interface Target{ void targetMethod(); } ​ class MockTargetImpl implements Ta..

2021-07-03 16:00:49 170

原创 【算法导论】动态规划切钢条

问题:钢条切割    给定长度为n英寸的钢条,和一个价格表P{1....n},求切割钢条的方案,使得收益R最大。如果钢条价格足够大,可以完全不用切割。 来源:算法导论,第15章 方法:1、递归穷举;2、动态规划 思路: 递归穷举:钢条分为两部分左边为不切割部分范围长度j,右边为切割部分范围n-j,收益Max{R = P[j]+R[n-j]} private static in

2015-09-27 20:33:15 1336

原创 【算法导论】求最大子数组

要求:找到数组中连续和最大的子数组 来源:算法导论,第四章 方法:分治法 思路:一个串中和最大的子数组,可能出现的位置1、前一半(不包含中间元素)                                                                                2、后一半(不包含中间元素)

2015-09-27 17:04:07 418

原创 【从头开始学算法】归并排序

需求:将数组中元素排序 思路:将数组拆分成若干一个元素的小数组,数组两两合并, 与之前的排序方法不同在于,归并排序,需要额外的空间,用来临时存放合并后的小数组 public static void MergeSort(int[] arr, int first, int last) { System.out.println("MergeSort"+first+last);

2015-09-27 12:15:49 433

原创 【从头开始学算法】快速排序

需求:给定数组从小到大排序 快速排序思路:1、选定第一个数字为标识flag,将数组分成两部分,一部分比flag大,一部分比flag小,           2、再将得到的两部分分别进行1,直到完成          第一步实现:1、从后向前,找到比flag小的,放到空中,自身空出来                                2、从前向后,找到比flag大的,放到空中,自身空出

2015-09-26 18:33:14 503

原创 【从头开始学算法】选择排序 插入排序 冒泡排序

需求:对数组中数字进行排序 选择排序: 思想:从头开始,最小值和第一个交换,次小值和第二个交换。。。。。 private static void SelectionSort(int[] arr) { for(int i=0;i<arr.length;i++){ int min=i; for(int j=i+1;j<arr.length;j++){ if(arr[j]

2015-09-26 17:03:24 335

原创 [笔试题]找数组中最长和为0连续子序列

输入:int 型数组由正数、负数、0组成 输出:最长和为0的子序列 例: 输入:[3,0,-1,-2,-3,1,1,1,2,3,1,-2,-1] 输出:9 思路:原数组为A,长度为N 新建一个数组B[1...N+1],B[i]=A[i-1]+A[i-2]+A[1],B[1]=0 时间复杂度为O(n)

2015-09-25 21:42:30 5744 2

空空如也

空空如也

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

TA关注的人

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