自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洞玄之境的博客

业精于勤荒于嬉

  • 博客(35)
  • 收藏
  • 关注

原创 剑60—把二叉树打印成多行(按层)

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思想二叉树打印,队列思想 1、新建当前所在层节点的队列queue,根节点入队列2、如果队列queue不为空2.1新建缓冲队列buff,存放当前节点的孩子节点 新建集合al,存放当前层的节点 2.2 如果队列queue不为空,poll出栈顶元素即为cur,将当前元素值加入集合al ...

2018-04-27 23:21:27 126

原创 剑59—之字形打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。解题思路剑指思路1:栈的思想 若当前打印奇数层,从右到左打印下一个,则从左到右入栈 若当前打印偶数层,从左到右打印下一个,则从右到左入栈思路2:队列+反转 将每层的数据存进**队列**queue中,偶数层时进行reve...

2018-04-27 23:07:50 123

原创 剑58—对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。解题思路通过比较二叉树的前序遍历序列和对称前序遍历序列来判断二叉树是不是对称的,如果两个序列是一样的,则二叉树就是对称的。代码如下/*public class TreeNode { int val = 0; TreeNode left ...

2018-04-26 23:06:10 108

原创 最长回文子串

题目描述Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000. Example 1:Input: “babad” Output: “bab” Note: “aba” is also a valid answer...

2018-04-24 23:18:12 113

原创 合法IP地址判断

正则表达解释: iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式下面给出相对应的正则表达式:“^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.”+”(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.”+”(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\...

2018-04-21 17:02:21 12965 1

原创 将字符串中某个字符串替换为另外一个字符串

package mianshi;//将字符串中某个字符串更改为另外一个字符串// "abcdef"将"bc"->"de"public class strChange { //方法1、自带函数解决 public String replace2(String s,String s1,String s2){ if(s.contains(s1)

2018-04-21 16:25:15 30873

原创 被3整除又能被5整除,输出该数字及‘*#’标记

题目描述: 依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及’‘标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘#’标记。package mianshi;public class isMod35 { /* public static void main(String[] args){ ...

2018-04-21 16:21:02 3257

原创 剑57—二叉树的下一个节点

题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。/*public class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; TreeLinkNode n...

2018-04-20 23:28:00 99

原创 剑56—删除链表中重复的结点

题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/* public class ListNode { int val; ListNode next = null; ListNode(i...

2018-04-20 23:26:50 95

原创 剑55—链表的环的入口结点

题目描述 一个链表中包含环,请找出该链表的环的入口结点。/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/import java.util.HashSet;public class...

2018-04-20 23:25:42 104

原创 剑54—字符流中第一个不重复的字符

题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。import java.util.*;public class Solution{ /*...

2018-04-20 23:24:32 116

原创 剑53—表示数值的字符串

题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是。public class Solution { //Double.parseDouble方法是把数字类型的字符串,转换成doub...

2018-04-20 23:23:02 132

原创 剑52—正则表达式匹配

题目描述请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配解题思路:当模式中的第二个字符不是“*”时: 1、如果字符串第一个字符和模式中的第一个...

2018-04-20 23:20:24 118

原创 剑51—构建乘积数组

题目描述 给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。import java.util.ArrayList;public class Solution { /*剑指的思路:B[i]的值可以看作下图的矩阵中每行的乘积。下三角用连乘可以很容...

2018-04-20 23:18:10 125

原创 树的遍历

package tree;import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;class TreeNode { int val; TreeNode left; TreeNode right; TreeN...

2018-04-16 23:55:10 113

原创 排序算法java实现总结

时间复杂度: 冒泡,选择,插入 O(n^2) 归并,快排,堆排序,希尔排序 O(nlogn) 计数,基数排序 O(n)空间复杂度 O(1):冒泡,选择,插入,堆排序,希尔排序 O(logn)~O(n): 快排 O(n):归并 O(m):计数,基数排序一、冒泡排序思想:冒泡排序顾名思义就是整个过程像气泡一样往上升(假设由小到大排序):对于给定n个数,从头开始让...

2018-04-16 23:26:33 162

原创 剑50—数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 示例1 输入{2,3,1,0,2,5,3}, 输出 2解题思路//我自己的思想ACimport ...

2018-04-14 10:00:59 161 1

原创 剑49—把字符串转换成整数

题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入 +2147483647 1a33 输出 2147483647 0解题思路public class ...

2018-04-13 23:33:14 116

原创 剑48—不用加减乘除 求两个整数之和

题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解题思路a ^ b 表示没有考虑进位的情况下两数的和,(a & b) << 1 就是进位。递归会终止的原因是 (a & b) << 1 最右边会多一个 0,那么继续递归,进位最右边的 0 会慢慢增多,最后进位会变为 0,递归终止。//简单写法pub...

2018-04-13 22:59:09 166

原创 剑47—求1+2+3+...+n

题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解题思路:1.需利用逻辑与的短路特性实现递归终止。 2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0; 3.当n>0...

2018-04-13 22:56:30 99

原创 剑46—圆圈中最后剩下的数

题目描述 让小朋友们围成一个大圈。然后,他随机指定一个数 m,让编号为 0 的小朋友开始报数。每次喊到 m-1 的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续 0…m-1 报数 …. 这样下去 …. 直到剩下最后一个小朋友,可以不用表演。解题思路 约瑟夫环,圆圈长度为 n 的解可以看成长度为 n-1 的解再加上报数的长度 m。因为...

2018-04-13 22:24:28 142

原创 剑45—扑克牌顺子(数组元素是不是连着的)

题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…..LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。...

2018-04-13 22:09:17 211

原创 809. Expressive Words(字符串处理)

题目描述Sometimes people repeat letters to represent extra feeling, such as “hello” -> “heeellooo”, “hi” -> “hiiii”. Here, we have groups, of adjacent letters that are all the same character, and...

2018-04-13 18:46:51 503

原创 811. Subdomain Visit Count(字符串处理)

问题描述A website domain like “discuss.leetcode.com” consists of various subdomains. At the top level, we have “com”, at the next level, we have “leetcode.com”, and at the lowest level, “discuss.leetcod...

2018-04-13 18:43:47 233

原创 剑44—翻转单词顺序列(I am a student.->student. a am I)

题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?输入:”I am a...

2018-04-13 18:03:57 543

原创 剑43—左旋转字符串

题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!解题思路public class Solution { //解法1:利用ja...

2018-04-13 11:34:10 89

原创 剑42—和为是S的两个数字 (递增排序数组)

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,输出两个数,小的先输出。解题思路使用双指针,一个指针指向元素较小的值,一个指针指向元素较大的值。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。如果两个指针指向元素的和 sum == targ...

2018-04-12 23:13:51 144

原创 剑41—和为S的连续正数序列

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

2018-04-12 23:08:12 106

原创 剑指40—数组中只出现一次的数字(其他都出现两次)

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 例如 输入{2,4,3,6,3,2,5,5} 输出 4,6解题思路异或思想:任何一个数字异或它自己都等于0;两个不相等的元素在位级表示上必定会有一位存在不同。将数组的所有元素异或得到的结果为只出现一次的两个元素异或的结果。由于这两个数字肯定不一样,那么这个异或结果肯...

2018-04-12 22:47:49 114

原创 剑38—二叉树的深度 || 剑39— 平衡二叉树

剑39—二叉树的深度题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路:如果一棵树只有一个节点,则深度为1; 如果根节点只有左子树而没有右子树,则树的深度=左子树深度+1; 如果根节点只有右子树而没有左子树,则树的深度=右子树深度+1; 如果根节点既有左子树又有右子树,则树的深度=1...

2018-04-12 21:46:06 85

原创 剑指37—数字在排序数组中出现的次数

题目描述统计一个数字在排序数组中出现的次数解题思想:遇见排序数组,首先想到二分查找 利用二分查找,在数组中找到第一个k出现下标,再找到最后一个k,下标相减加一即可。 二分查找算法分析查找第一个k:先拿数组中间的数字和k进行比较, 1、如果中间的数字比k大,则k出现在数组的前半段,下一轮只需要在数组的前半段查找即可; 2、如果中间的数字比k大,则k出现在数组的后半段,下一轮只...

2018-04-12 21:27:45 107

原创 剑36—两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。 解题思想:设 A 的长度为 a + c,B 的长度为 b + c,其中 c 为尾部公共部分长度,可知 a + c + b = b + c + a。当访问 A 链表的指针访问到链表尾部时,令它从链表 B 的头部重新开始访问链表 B;同样地,当访问 B 链表的指针访问到链表尾部时,令它从链表 A 的头部重新开始访问链表 A。这样就...

2018-04-12 17:42:47 103

原创 剑35—数组中的逆序对

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据...

2018-04-12 17:31:28 103

原创 最长无重复子串

Longest Substring Without Repeating CharactersGiven a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the leng...

2018-04-03 23:05:24 172 1

原创 剑28—数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。方法一:(剑指思想)采用阵地攻守的思想:时间复杂度是O(n)1)第一个数字作为第一个士兵,守阵地;count = 1; 2)遇到相同元素,count++; 遇...

2018-04-03 21:33:40 105

空空如也

空空如也

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

TA关注的人

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