
JAVA
小小小小小菜鸡
这个作者很懒,什么都没留下…
展开
-
第一次只出现一次的字符
题目剑指offer50 第一次只出现一次的字符在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)总结方法一:基于LinkedHashMap的方法由于题目与字符出现的次数有关,所以可以想到用一个容器统计每个字符出现的次数。于是想到用HashMap。但是HashMap是不存储数据...原创 2019-03-24 23:07:11 · 209 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
题目剑指offer 二叉搜索树的后序遍历序列输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。总结找出第一个大于根的节点,然后后面的节点都是小于根的,如此递归判断。class Solution { public boolean VerifySquenceOfBST(int [] seque...原创 2019-04-01 11:19:41 · 208 阅读 · 0 评论 -
搜索旋转排序数组
题目leetcode 33 搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。总结class Soluti...原创 2019-04-01 09:37:48 · 193 阅读 · 0 评论 -
二叉树的镜像
题目剑指 offer 二叉树的镜像操作给定的二叉树,将其变换为源二叉树的镜像。总结注意判断root为null的情况。public class Solution { public void Mirror(TreeNode root) { if (root == null) { return; } ...原创 2019-03-31 23:23:01 · 178 阅读 · 0 评论 -
树的子结构
题目剑指offer 树的子结构输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)总结首先找出tree1中与tree2中相同根节点的子节点。再调用另一函数判断该节点时候能包含子结构。class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { ...原创 2019-03-31 23:10:08 · 124 阅读 · 0 评论 -
数组中的第K个最大元素
题目leetcode 215 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。总结方法一:暴力法要找到数组中的第K个最大元素,首先可以想到排序,再遍历。此种方法的时间复杂度最低为O(nlogn)。方法二:基于partition的分治法首先可以想到快速排序可以找到第index大的元素...原创 2019-03-22 20:58:53 · 3185 阅读 · 1 评论 -
求众数
20190319_求众数@(Leetcode)[数组]题目leetcode 169 求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。总结方法一:排序后取中位数按照数组的特点,若一个数在数组中出现次数大于一半,则当给该数组排序后,该数字一定会出现在中间位置。到了JDK7的...原创 2019-03-22 19:12:19 · 591 阅读 · 0 评论 -
把数组排成最小的数
题目剑指offer 45 把数组排成最小的数输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。总结方法一:用优先队列进行排序自定义一种字符串比较的规则,进行排序。时间复杂度为O(n)。public class Solution { public S...原创 2019-03-25 10:49:06 · 159 阅读 · 0 评论 -
连续子数组的最大和
题目剑指offer 42 | leetcode 53 数组中的第K个最大元素HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最...原创 2019-03-25 09:36:56 · 164 阅读 · 0 评论 -
平衡二叉树
题目leetcode 平衡二叉树输入一棵二叉树,判断该二叉树是否是平衡二叉树。总结平衡二叉树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。方法一:遍历每个结点遍历每个结点,借助一个获取树深度的递归函数,根据该结点的左右子树高度差判断是否平衡,然后递归地对左右子树进行判断。然而,这种做法有很明显的问题,在判断上层结点的时候,会多次重复遍...原创 2019-04-02 09:43:33 · 282 阅读 · 2 评论