java
文章平均质量分 50
追随者永远是胜利者
坚韧皮实,行稳致远
展开
-
剑指Offer(从 1 到 N 中 1 出现的次数)java实现
剑指offer上有一题:从 1 到 n 中 1 出现的次数,本思路是剑指offer中的思路,用java代码做的实现,思路请参考《剑指offer》源代码: public static int countDigitOne(int n) { if(n < 0) return 0; char[] ch = String.v...原创 2020-02-29 20:24:36 · 250 阅读 · 0 评论 -
leetcode题解(257) Binary Tree Paths(打印所有二叉树根节点到叶节点的路径)
题目描述:Given a binary tree, return all root-to-leaf paths.Note:A leaf is a node with no children.Example:Input: 1 / \2 3 \ 5Output: ["1->2->5", "1->3"]Explanation: ...原创 2019-10-23 22:19:29 · 276 阅读 · 0 评论 -
Leetcode(85)maximal-rectangle(最大矩形面积)
题目描述:Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area.Example:Input:[ ["1","0","1","0","0"], ["1","0","1","1","1"], ["...原创 2019-10-23 20:35:55 · 244 阅读 · 0 评论 -
leetcode题解:376. Wiggle Subsequence(摆动序列的最大长度)
题目描述:A sequence of numbers is called awiggle sequenceif the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exists) may be eit...原创 2019-09-25 17:28:51 · 184 阅读 · 0 评论 -
leetcode题解:91.Decode Ways(解码方式数量)
题目描述:A message containing letters fromA-Zis being encoded to numbers using the following mapping:'A' -> 1'B' -> 2...'Z' -> 26Given anon-emptystring containing only digits, dete...原创 2019-09-24 21:27:19 · 141 阅读 · 0 评论 -
int型转换为long型遇到的一个小问题
LeetCode上有一道题:给出一个数 n ,求(0, n)之间素数的个数。然后我采用埃拉托斯特尼筛法在每次找到一个素数时,将能被素数整除的数排除掉。但是,在进行int类型转换的时候会报:java.lang.ArrayIndexOutOfBoundsException代码如下:public int countPrimes(int n) { boolea...原创 2019-07-09 12:51:59 · 2010 阅读 · 0 评论 -
八大排序算法中的归并排序
归并排序其实就是分治思想的应用。分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。如下图:对数组进行排序,先按二分法拆分数组,然后依次对每一个单元进行拆分。直到拆分到单个元素。代码如下:public class Test_A...原创 2019-04-29 20:35:08 · 159 阅读 · 0 评论 -
剑指offer(机器人的运动范围)
一、题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?二、解答解题思路:这个方格也可以...原创 2019-04-22 08:50:14 · 255 阅读 · 0 评论 -
剑指offer(二叉搜索树转换为双向链表)
一、题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。二、解题思路非递归思路:中序遍历二叉搜索树,就是对节点的顺序遍历。依次把节点存储到集合中,然后让集合中的前一个元素指向后一个元素,同时后一个元素指向前一个元素。 //把二叉搜索树转变为排序的双向链表 public static TreeNod...原创 2019-04-14 14:11:04 · 221 阅读 · 0 评论 -
剑指offer【二叉搜索树的后序遍历序列】(java版)
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:二叉搜索树又叫二叉排序树,它的父节点总是大于左子节点(如果左子节点不为空),总是小于右子节点(如果右子节点不为空)。且对二叉搜索树进行中序遍历,得到一个有序升序序列。(1).基于此性质,我们可知对一个二叉搜素树进行后续遍历,则最后...原创 2019-04-09 23:36:24 · 106 阅读 · 0 评论 -
中序线索化二叉树
为什么要线索化二叉树?答:对于如下一颗二叉树,中序遍历二叉树结果为4,2,5,1,3那么我想知道5前面的数是什么,就必须要先中序遍历一遍然后再去查询5前面的数字。那么如果我这样操作:对于左右子节点为null的节点,它的左节点指向前一个节点,右节点指向下一个节点,同时标记指针置为1,这样的话,我就可以直接知道中序遍历时5的前一个节点和后一个节点。这个对二叉树的操作过程叫:线索化二叉...原创 2019-04-06 21:01:19 · 7677 阅读 · 1 评论 -
数组生成大顶堆与堆排序
大顶堆:堆可以看做一个完全二叉树,如果该完全二叉树满足双亲结点大于等于孩子结点,则这样的堆也称为大顶堆。小顶堆:如果完全二叉树满足双亲结点小于等于孩子结点,则这样的堆也称为小顶堆。对于一个数组生成的完全二叉树,如果完全二叉树中的一个节点对应数组中的下标索引为index,则这个节点的左右子节点对应数组中的下标索引为: lef...原创 2019-04-06 17:10:21 · 2621 阅读 · 0 评论 -
java中运行时异常 the operator(什么什么)is undefinded for the argument byte[s] 的原因之一
the operator(什么什么)is undefinded for the argument byte[s]:这句话的意思是:出现这个异常所对应的代码语句,在进行赋值或者判断,运算符的左边不存在运算符右边的类型。也就是把基本类型赋值给引用类型了。原因是:在java中八种基本数据类型的默认值为0或者false, null是所有引用类型的默认值。...原创 2019-02-17 14:04:24 · 1452 阅读 · 0 评论 -
JAVA实现Huffman编码(赫夫曼编码)
思路:把字符串转化为字节数组,对字符串中不同字符出现的次数进行统计,统计结果存储到一个Map中 键为字符字节,值为此字符字节在字符串中出现的次数 创建赫夫曼树 读取每一个字符字节的路径方向值,把字符串中的每个字符用路径方向值来表示 把得到的二进制字符串切分为有符号字节存储到字节数组中 打印原字符串,二进制字符串,字节数组 代码如下://Node类用于创建树结构publi...原创 2019-02-17 13:47:02 · 489 阅读 · 0 评论