2019年9月30日
摘要: 马踏棋盘问题(骑士周游问题) 实际上是图的深度优先搜索(DFS)的应用。 如果使用回溯(就是深度优先搜索)来解决,假如马儿踏了53个点,如图:走到了第53个,坐标(1,0),发现已经走到尽头,没办法,那就只能回退了,查看其他的路径,就在棋盘上不停的回溯…… ,思路分析+代码实现 使用贪心算法(gre 阅读全文
posted @ 2019-09-30 13:45 爱吃米饭的boy 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 弗洛伊德算法 Dijkstra算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法。 该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名 弗洛伊德算法(Floyd)计算图中各个顶点之间的最短路径 迪杰斯特拉算法用于计算图中 阅读全文
posted @ 2019-09-30 13:45 爱吃米饭的boy 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 问题描述 看一个应用场景和问题: 战争时期,胜利乡有7个村庄(A, B, C, D, E, F, G) ,现在有六个邮差,从G点出发,需要分别把邮件分别送到 A, B, C , D, E, F 六个村庄 各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里 问:如何计算出G村庄到 其它各 阅读全文
posted @ 2019-09-30 13:45 爱吃米饭的boy 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 问题描述 阅读全文
posted @ 2019-09-30 13:45 爱吃米饭的boy 阅读(91) 评论(0) 推荐(0) 编辑
摘要: ``` / @param data 带查找的数组(数组) @param target 目标数据 @return 返回对应的下标, 1 表示没有找到 / public static int binarySearch(int[] data, int target) { int low = 0; int 阅读全文
posted @ 2019-09-30 13:45 爱吃米饭的boy 阅读(156) 评论(0) 推荐(0) 编辑
  2019年9月24日
摘要: 概念 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法 动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 与分治法不同的是,适合于用动态规划求解 阅读全文
posted @ 2019-09-24 15:18 爱吃米饭的boy 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 分治算法 基本概念 分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换( 阅读全文
posted @ 2019-09-24 14:17 爱吃米饭的boy 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 图基本概念 1 顶点 2 边(edge) 3 路径 4 无向图 5 有向图 6 带权图 图表示方式 邻接矩阵(二维数组) 邻接矩阵是表示图形中顶点之间相邻关系的矩阵,对于n个顶点的图而言,矩阵是的row和col表示的是1....n个点 实例图 邻接表(链表) 邻接矩阵需要为每个顶点都分配n个边的空间 阅读全文
posted @ 2019-09-24 09:37 爱吃米饭的boy 阅读(167) 评论(0) 推荐(0) 编辑
  2019年6月20日
摘要: lambda表达式写法 没有参数时或则多个参数时 不能省略 一个参数时 能省略 参数类型 可以省略 编译器会根据上下文推断类似与泛型的 t { } {} {} return return t ... ``` 阅读全文
posted @ 2019-06-20 17:49 爱吃米饭的boy 阅读(141) 评论(0) 推荐(0) 编辑
摘要: ``` { "query": { "bool": { "must": [{ "term": { "openid": "" } }], "must_not": [], "should": [] } }, "from": 0, "size": 1000, "s... 阅读全文
posted @ 2019-06-20 11:31 爱吃米饭的boy 阅读(131) 评论(0) 推荐(0) 编辑