
算法
yuzhiyun3536
鹅厂 IOS 小鲜肉
zhiyunyu@tencent.com
本博客不再更新,请前往简书。
简书 http://www.jianshu.com/u/c0452f9c97d6
展开
-
KMP算法
转载自阮一峰转载 2016-11-12 15:34:16 · 305 阅读 · 0 评论 -
二叉树非递归遍历
参考http://blog.youkuaiyun.com/sgbfblog/article/details/7773103 感谢package com.yuzhiyun;import java.util.Stack;import javax.xml.soap.Node;import com.yuzhiyun.FindPathInBinaryTree.BinaryTreeNode;public class Pr转载 2017-08-04 17:07:56 · 274 阅读 · 0 评论 -
01背包
题目现有n件物品和一个容量为c的背包。第i件物品的重量是重量为w[i],价值是v[i]。已知对于一件物品必须选择取(用1表示)或者不取(用0表示),且每件物品只能被取一次(这就是“0-1”的含义)。求放置哪些物品进背包,可使这些物品的重量总和不超过背包容量,且价值总和最大。分析m[i][j]表示当可以放入前i件物品且背包容量为j时的最大价值代码package com.yuzhiyun;public转载 2017-08-12 11:49:06 · 239 阅读 · 1 评论 -
排序总结
今天总结下所有排序算法冒泡public class bubble {/**冒泡排序 * 第一个数字和所有它右边的数字对比,选出最小的数字放在第一位 * 第二个数字和所有它右边的数字对比,选出最小的数字放在第二位 * 。。。。。依次进行 * */ public static void sort(int[] number) { int temp; for原创 2016-09-01 10:27:01 · 523 阅读 · 0 评论 -
八皇后问题 java
一、什么是八皇后问题有一块8乘8的棋盘(64个格子),还有8个皇后需要放在在64个格子上,有多少种放置方法可以使得皇后不在同一行、不在同一列,不再同一斜线。 二、代码(参考自 https://my.oschina.net/js99st/blog/417837 感谢作者辛苦注释)package com.yuzhiyun;public class NQueen { /** 皇后数组,数组的下标转载 2017-08-03 15:35:31 · 417 阅读 · 0 评论 -
二叉树节点数量关系
node 表示一棵树节点总数量node1 表示度为1的节点数量node2 表示度为2的节点数量]leaf 表示叶子节点的数量line 表示一棵树中茎(也就是两个节点之间的连线)的数量显然: node -1 =line; node=node1+node2+leaf; line=node1 + 2* node2; 那么 node1+node2+leaf -1原创 2017-08-30 18:57:15 · 3409 阅读 · 0 评论 -
Hufuman编码
原理http://bitjoy.net/2016/08/18/the-implementation-of-huffman-code/ 哈弗曼编码是一个很经典的压缩算法,压缩率能达到50%,甚至更低。它的基本原理包括四个步骤: 1. 统计文件中每个字符出现的频率。 2. 构建一个哈弗曼树。建树的过程是不断的合并频率最小的两个节点,父亲节点的频率为两个孩子节点的频率之和。如此循环直到合并成一个根节原创 2017-08-30 16:50:37 · 1171 阅读 · 0 评论 -
动态规划解决找零钱问题
贪心算法这个题目首先我们会想到用贪心算法,但是贪心可能会导致得不到最优解,用动态规划就可以解决,通过记录子问题的结论,来推导更大的子问题的答案动态规划参考:http://blog.163.com/huang_zhong_yuan/blog/static/174975283201110604819214/ 感谢!!!public class CoinsChange { /**原创 2017-09-11 15:48:54 · 2630 阅读 · 0 评论 -
自定义View实现词组 不断行显示 并且高亮
1、题目详情实现一个自定义 View,其功能是: 1. 使用默认颜色(比如黑色)展示一段 text。 2. 使用这段 text 的中的某些词组高亮为其他颜色(比如红色),这些词组是作为参数输入的。 3. 这些被高亮的词组有一个特殊的要求:同一个词组中的单词不允许换行,例如 instance of 作为一个高亮词组时,词组中的 instance 不可以是一行中的最后一个单词。 4. 这个自定义原创 2017-11-01 10:07:07 · 788 阅读 · 0 评论 -
使用KNN算法在python下识别手写数字(带注释)
# -*- coding: utf-8 -*-#pip install numpyimport osimport os.pathfrom numpy import *import operatorimport timefrom os import listdir"""描述: KNN算法实现分类器参数: inputPoint:测试集...原创 2016-07-16 17:47:24 · 866 阅读 · 0 评论 -
汉诺塔问题的java算法实现
最近在当家教,顺便下复习大一的内容,项目可以做,但是基础还是得扎实。 汉诺塔问题是递归思想优越性的最权威证明啦。public class TowerOfHanoi { public static void main(String[] args) { Scanner inputScanner=new Scanner(System.in);...原创 2016-08-05 22:42:15 · 191 阅读 · 0 评论 -
二叉搜索树 插入节点
package com.yuzhiyun;import com.yuzhiyun.PreOrder.BinaryTreeNode;public class DealBinarySearchTree { /** * 二叉树的树结点 */ public static class BinaryTreeNode { public BinaryTreeNode原创 2017-08-18 10:00:22 · 452 阅读 · 0 评论 -
回溯法 解决二叉树中找一条和为固定数值的路径(java)
问题描述其中路径指的是从跟节点到叶子节点经过的路径代码package com.yuzhiyun;import java.util.ArrayList;import java.util.List;public class FindPathInBinaryTree { /** * 二叉树的树结点 */ public static class BinaryTreeNod转载 2017-08-03 16:44:00 · 386 阅读 · 0 评论 -
汉诺塔问题的java算法实现
最近在当家教,顺便下复习大一的内容,项目可以做,但是基础还是得扎实。 汉诺塔问题是递归思想优越性的最权威证明啦。public class TowerOfHanoi { public static void main(String[] args) { Scanner inputScanner=new Scanner(System.in); System.o原创 2016-11-18 20:39:10 · 432 阅读 · 0 评论 -
Sort
BubbleSort.Javapackage sort;public class BubbleSort { public static void main(String[] args) { int[] number={6,7,8,5,4,1,2,3};// bubbleSort(number); int low=0; int high=numb原创 2016-11-18 20:34:30 · 297 阅读 · 0 评论 -
使用KNN算法在python下识别手写数字(带注释)
# -*- coding: utf-8 -*-#pip install numpyimport osimport os.pathfrom numpy import *import operatorimport timefrom os import listdir"""描述: KNN算法实现分类器参数: inputPoint:测试集原创 2016-11-18 20:37:13 · 2323 阅读 · 0 评论 -
根据先序和中序还原(重建)一个二叉树
package tree.BinaryTree;import java.util.Arrays;/** * 根据先序和中序还原一个二叉树 * * @author yuzhiyun * */public class ReCreateBinaryTree { public static void main(String[] args) { // 先序原创 2016-12-05 16:06:03 · 1133 阅读 · 0 评论 -
二分查找
package com.yuzhyun.test7;public class BinarySearch { static int binarySearch(int[] array, int key) { int index = search(array, key, 0, array.length - 1); return index; } priv原创 2016-12-25 17:48:05 · 304 阅读 · 0 评论 -
java实现数组全排列
`package com.yuzhiyun;import java.lang.reflect.Array; import java.util.Arrays;public class Yuzhyun {public static void main(String[] args) { int[] array={1,2,3,4}; allSort(array, 0, array.leng原创 2017-04-11 15:43:49 · 8633 阅读 · 2 评论 -
java实现最大字段和的动态规划解法
1、题目:对于数组 a ,如何求出他的一个子数组(下标连续),使得这个子数组的所有元素之和最大?2、动态规划解法若记 其中,a为原数组,1<=j <=n. 那么b[ j ]是什么意思呢? 答:b[ j ]表示在数组a中以a[ j ]结尾的所有子数组最大值。由于任何子数组必然以数组a 中某一个元素结尾,那么我们就可以把所有子数组按照它的最后一个元素下标来进行分类,按照前面的定义,每一个类别中的子原创 2017-04-12 16:35:49 · 1794 阅读 · 2 评论 -
求第一个只出现一次的字符
题目在字符串中找出第一个只出现一次的字符,如输入”abaccdeff”,那么输出’b’解法首先遍历字符数组,把每一个字符放进一个hashMap,key为字符,value为出现次数。 接下来遍历hashMap,找出第一个value为1的key就行了。代码import java.util.HashMap;import java.util.LinkedHashMap;import java.util原创 2017-04-12 17:36:31 · 386 阅读 · 0 评论 -
求一亿个数字里面最小的10个数字
package com.yuzhiyun;import java.util.Arrays;/** * 求一亿个数里面最小的10个数 * 首先建立节点个数为10的最大堆,然后考虑每一个新的值,让他和堆顶比较,比堆顶大的元素直接抛弃,如果比堆顶小的数字,让他替换堆顶,然后调整堆。 */public class MaxTenNumber { public static void main(原创 2017-04-14 22:18:12 · 11215 阅读 · 4 评论 -
二叉树递归与非递归层次遍历
package com.yuzhiyun;import java.util.LinkedList;import java.util.Queue;import com.yuzhiyun.FindPathInBinaryTree.BinaryTreeNode;public class BinaryTreeLevelPrint { public static void main(String[]原创 2017-08-15 10:30:25 · 553 阅读 · 0 评论 -
微信小程序 js 获取当前月份的天数
// 计算这个月有多少天 getCurrentMonthDayNum:function () { let today = new Date(); var dayAllThisMonth = 31; if (today.getMonth() + 1 != 12) { var currentMonthStartDate = new Date(today.getF...原创 2018-12-22 22:01:09 · 2975 阅读 · 0 评论