自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 剑指Offer - 和为S的连续正数序列(Java实现)

题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck! 输出描述: 输出所有和为S的连续正数...

2018-12-29 15:32:31 251

原创 剑指Offer - 二叉树的深度(Java实现)

题目描述: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路分析: 方法1:递归的思想解决问题。 public class Solution { public int TreeDepth(TreeNode root) { if(root == null){ return...

2018-12-24 15:04:29 129

原创 剑指Offer - 数字在排序数组中出现的次数(Java实现)

题目描述: 统计一个数字在排序数组中出现的次数 思路分析: 已下代码均通过牛客测试,主要工作只是在时间复杂度上的优化。 看到排序数组,然后又看到查找。首先就想到二分查找,开始的思路是先通过二分查找找出需要统计的那个数字,找到后再从那个位置依次向后遍历。代码如下: public class Solution { public int GetNumberOfK(int [] array ,...

2018-12-22 17:33:00 481

原创 剑指Offer - 数组中的逆序对(Java实现)

暴力查找,时间复杂度O(N^2),运行超时。 public class Solution { public int InversePairs(int [] array) { if(array == null || array.length < 2){ return 0; } int temp =...

2018-12-20 10:33:01 327

原创 剑指Offer-第一个只出现一次的字符(Java实现)

题目描述: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回-1(需要区分大小写). 思路分析: 方法一: 个人思路 比较粗暴,将字符串转换成字符数组,按顺序遍历字符数组。需要两个指针,指针1指向首次出现的字符,指针2从指针1的位置往后遍历,找出与指针1相同的字符。 1,新建一个HashSet集合,用于存储...

2018-12-18 15:21:33 2787

原创 剑指Offer-把数组排成最小的数(Java实现)

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路分析: 本题的核心思想还是排序,但是如何排序是个问题。 先将整型数组转换成字符串数组,然后按照自定义的比较器规则来排序。 对于任意两个字符串s1和s2,比较s1+s2和s2+s1,若s1+s2小于s2+s...

2018-12-15 16:21:15 124

原创 剑指Offer - 数组中出现次数超过一半的数字(Java实现)

题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路分析: 方法1:借助HashMap,将数字以及出现次数依次存入Map集合中。 代码实现如下: import java.util.HashMap; public cla...

2018-12-09 22:29:01 229

原创 剑指Offer - 字符串的排列(Java实现)

题目描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路分析: 本题考察的是回溯法的思想。 代码实现如下: import java.util.ArrayList; import java.util.Collections; import java.util....

2018-12-06 22:44:34 233

原创 剑指Offer - 二叉搜索树与双向链表(Java实现)

题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路分析: 二叉搜索树(BST)有一个很关键的结论就是:中序遍历的结果是非递减(递增)序列。而本题要求将BST转换成排序的双向链表,核心就是考察二叉树的非递归中序遍历方法。需要借用栈空间,并且需要一个变量记录上一个出栈的元素。 代码实现如下: public class...

2018-12-05 21:34:58 168

原创 剑指Offer - 复杂链表的复制(Java语言实现)

题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路分析: 方法1,借助HashMap。 遍历链表,依次将节点作为键(KEY)存入Map集合中,新建一个RandomListNode对象并将当前key的数值传入该对象中,...

2018-12-02 00:23:43 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除