摘要: 算法4讲到归并排序,也算是这本书对分治的介绍开始。分治的核心是递归,递归的思想则是大事化小,小事化了,这个“了”说明一定会有结束并开始回归。提到递归,我想很多人会和我一样,非常头疼,简单的那种尾递归,然后就一层,理解起来还是比较容易的,这个容易其实是建立在你可以思考跟踪程序的运算流程来理解。但是复杂 阅读全文
posted @ 2020-05-15 10:49 junlancer 阅读(198) 评论(2) 推荐(0) 编辑
摘要: 利用递归重复翻转即可,先翻转左子树再翻转又子树都可: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode 阅读全文
posted @ 2020-05-15 09:24 junlancer 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 这边提供两种方案: 1,常规二分查找里面,除法的作用只为了除以2,这个等价于右移1位,故直接更改mid的计算如下: public static int rank(int key, int[] a) { // 数组必须是有序的 int lo = 0; int hi = a.length - 1; wh 阅读全文
posted @ 2020-05-07 10:24 junlancer 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 思路先找出最大值,然后分割进行二分查找; private static int q1_4_20(int[] N, int key) { int l = 0; int r = N.length - 1; int aims = 0; //找最大值 while (l < r) { aims = l + ( 阅读全文
posted @ 2020-04-26 11:58 junlancer 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 题目要求在最坏的时候和N成正比,我们要利用好这两个有序的数组,我的思路是给两个游标,相等的时候同时移动, 不相等的时候单方移动,这边我直接就牺牲空间,创建两栈,思路可以更清晰点,相等时同时出栈,不相等时,数值大的出栈 public static void q1_4_12(int[] a, int[] 阅读全文
posted @ 2020-04-24 10:17 junlancer 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 这段时间我在系统的学习一下算法4,并计划学完每一章遍写一个总结,期间遇到的一些问题和思路我也想分享给大家。希望前行的路上我们一起加油! 斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n) 阅读全文
posted @ 2020-04-09 10:58 junlancer 阅读(432) 评论(0) 推荐(1) 编辑
摘要: 前提说一下,我们一般是对编译后的项目进行打包,不然打包后还得自己去重新编译class文件。 假如这是你的一个项目目录: 我们要写一个简单的计算器工具类项目,然后对他进行打包, idea里面out文件夹为项目编译后的文件夹 1:命令行打包 jar cvf name.jar -C DIR\ . (注意后 阅读全文
posted @ 2020-04-02 14:14 junlancer 阅读(1819) 评论(0) 推荐(0) 编辑
摘要: 思路,主体方法调用递归,比较首位是否相同,相同则消再递归掉比较,代码逻辑清晰,待优化。 阅读全文
posted @ 2019-10-28 17:02 junlancer 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 实现:做一个在添加注解的方法执行之前,可以先执行另一个方法 首先准备一个接口IEat,作为你要做的事情比如,eat(): public interface IEat { void eat(); } 然后两个类去实现这个接口,一个是我们的主要方法(原有不可变动的功能,这边自定义了一个@DoPre注解类 阅读全文
posted @ 2019-10-12 17:58 junlancer 阅读(948) 评论(0) 推荐(0) 编辑