自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 经典动态规划——最小编辑距离

理解动态规划方程理解为什么动态数组要从null开始

2019-09-01 10:25:55 269 1

原创 (递归)机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?运行时间:15ms占用内存:9632...

2019-08-22 13:50:34 273

原创 (剪枝?回溯)剑指 矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bccced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b...

2019-08-22 11:08:55 185

原创 剑指 二叉搜索树的第k个节点

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。运行时间:28ms占用内存:9696k/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; ...

2019-08-21 11:01:22 134

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

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5这道题需要注意的是,把重复元素全部删除而不是保留一个。指针需要推演推演。运行时间:23ms占用内存:9352kpublic class Solu...

2019-08-16 09:24:11 109

原创 剑指 链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。//两个指针,均指向链表头,一个一次走两步,一个一次一步,当相遇时必有环,且相遇点在环上//相遇后,将一个指针重新指向链表头,然后两个指针同时前进一步,相遇点即为环的入口public class Solution { public ListNode EntryNodeOfLoop(ListNo...

2019-08-15 16:53:51 106

原创 剑指 表示数值的字符串

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是运行时间:16ms占用内存:9288k思路其实也还行,能理解,可能想不全一下子;想全了也还有个问题,就是if else把握好啊朋友...

2019-08-15 16:10:34 110

原创 剑指 正则表达式匹配

题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。这道题主要是把思路捋清楚了就Ok.用指针来实现,能匹配上,指针就后移;分成两...

2019-08-15 14:47:30 142

原创 剑指 构建乘积数组

题目描述给定一个数组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]。不能使用除法。

2019-08-15 09:40:57 114

原创 (判断Int溢出)剑指 把字符串转换为整数

题目描述将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0示例1输入复制+21474836...

2019-08-09 14:20:21 559 1

转载 (位运算)剑指 不用加减乘除做加法

题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

2019-08-09 10:45:28 185

原创 剑指 孩子们的游戏(圆圈中剩下的最后一个数 约瑟夫环问题)

题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.....

2019-08-08 20:24:03 227

原创 剑指 扑克牌中的顺子

牛客网上的题意花里胡哨的。其实就是:从扑克牌中随机抽5张牌,判断是不是顺子,即这五张牌是不是连续的。大小王可以看做0可以代表任意数字。思路:参考剑指书。有三件事需要做:将数组排序;统计数组中0的个数;统计数组中相邻数字之间的空缺总数。如果空缺总数小于等于0的个数,则为顺子。运行时间:14ms占用内存:9440k注意有除零外有重复大小的数组肯定不是顺子。直接返回...

2019-08-08 19:55:02 149

原创 剑指 翻转单词顺序列+左旋转字符串

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

2019-08-08 15:50:57 295

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

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

2019-08-07 14:36:46 99

原创 (双指针)剑指 和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。思路://双指针法,一个指针指向小端,一个指针指向大端 //当他们的和=sum时,返回。 //<sum, 小端指针向大端移动 //&gt...

2019-08-07 14:10:12 143

原创 剑指 数组中只出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。我看到这个题的思路就是HashMap,但看看给出的代码模板,出题意图并不是这样。剑指那本书看了不易懂,这个哥们儿翻译的的非常通俗有重点了。运行时间:17ms占用内存:9672k位运算的优先级低,在和==组合时要括起来.//num1,num2分别为长度为1...

2019-08-07 12:15:48 105

原创 (剪枝递归)剑指 平衡二叉树

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。法一 思路大概是求二叉树的深度那道题来的,但有个问题,就是节点重复遍历。public class Solution { public boolean IsBalanced_Solution(TreeNode root) { if(root == null) return true...

2019-08-07 10:50:36 143

原创 (基于归并排序,得思考思考)剑指 数组中的逆序对

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

2019-08-01 21:36:24 126

原创 剑指 丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路:丑数应该是另一个丑数乘以2、3或5的结果。我们可以维护一个排好序的丑数数组没呢个丑数都是由前面的丑数乘以2、3或5得来的。把第一个乘以2后大于M(已有的最大丑数)记为M2,同理记M3、M5...

2019-07-29 20:58:26 138

原创 (重写比较器)把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。错误思路:一开始直接排序了输入数组,然后将其按照从小到大的顺序进行输出。得到了错误的输出:用例:[3,32,321]对应输出应该为:"321323"你的输出为:"332321"由此可以看到,...

2019-07-29 20:31:30 194

转载 剑指 整数中1出现的次数

题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。链接:https://www.nowcoder.com/q...

2019-07-29 19:37:13 93

原创 (动态规划)leetcode 最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"执行用时 :608 ms, 在所有 Java 提交中击败了8.18% 的用户内存消耗 :51.7 MB, 在所有 Java 提交中击败了19....

2019-07-26 10:05:15 92

原创 (最大堆 重写比较器)剑指 最小的k个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。法一 适合处理海量数据容器法思路(书):创建一个大小为k的容器,来存储最小的k个数。遍历数组,对于每一个数字,当容器未满时,直接丢进容器。当容器已满时,而当前数字又小于容器中的最大数字,我们需要将其替换出来。这个容器可以用最大堆(书上用了红...

2019-07-25 21:30:31 256

原创 (守阵地思路)剑指 数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路:(我觉得这个说的最生动了,留到最后的兵,很大可能就是是人数多的阵营。人数count=0的时候,到遍历到现在位置为止该阵营暂时全部阵亡,所以要提换阵营。)作者:cm问...

2019-07-25 19:46:48 158

原创 (回溯)剑指 字符串的排列

题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。运行时间:173ms占用内存:12468k参考题目:(回溯法+访问标志数组)leetcode 全排列+全排列II...

2019-07-24 21:01:46 103

原创 (复杂问题步骤化)剑指 二叉搜索树双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。运行时间:18ms占用内存:9192k/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; publi...

2019-07-24 20:41:18 87

原创 (复杂问题分步骤)剑指 复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)运行时间:24ms占用内存:9400k/*public class RandomListNode { int label; RandomLis...

2019-07-24 20:05:49 102

原创 剑指 二叉树中和为某一值的路径(回溯,多看多理解)

题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)参考题目:(回溯)leetcode 组合总和 java(看不懂就推导几遍)(回溯)Leetcode 组合总和II java比较上面两道题,有一个非常需要注意的地方tmp....

2019-07-23 20:57:06 131

原创 剑指 二叉搜索树的后序遍历序列

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出...

2019-07-23 20:02:31 79

原创 (队列)剑指 从上往下打印二叉树

import java.util.LinkedList;import java.util.Queue;Queue<String> queue = new LinkedList<String>();add() remove() element() 抛出异常offer() poll() peek() 返回false null题目描述从上往下打印出二...

2019-07-22 21:08:01 93

原创 剑指 栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:维护一个压入栈。1.若弹出序列的下一个数字刚好是栈顶元素,则直接弹出...

2019-07-22 20:45:20 86

原创 ((二维矩阵判空)剑指 顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.//一行用例:[[1],[2],[3],[4],[5]]对应输出应该为:[1,2,3,4,5]你的输出...

2019-07-22 17:02:04 92

原创 剑指 二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...

2019-07-22 16:13:32 90

原创 剑指 树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)*//*用例:{8,8,7,9,2,#,#,#,#,4,7},{8,9,2}对应输出应该为:true*/public class Solution { public boolean HasSubtree(TreeNode root1,TreeNode root2) { ...

2019-07-19 15:25:42 98

原创 (注意边界)剑指 链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。public class Solution { public ListNode FindKthToTail(ListNode head,int k) { //{} if(head == null) return head; //{1,2,3} 0 ...

2019-07-19 14:12:29 84

原创 剑指 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。法一:借用额外内存 栈运行时间: 14 ms 占用内存:9272Kimport java.util.Stack;public class Solution { public void reOrderArray...

2019-07-19 13:58:41 108

转载 剑指 数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。链接:https://www.nowcoder.com/questionTerminal/1a834e5e3e1a4b7ba251417554e07c00来源:牛客网/*** 1.全面考察指数的正负、底数是否为零等情况。* 2.写出指数的二进制表达,例如1...

2019-07-19 11:23:53 91

转载 剑指 二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。法一:将1左移因为将整数右移再与1比较的话,若为负数最高位补1,将会有多个1补进来public class Solution { public int NumberOf1(int n) { //将1左移和n与 int flag = 1; int coun...

2019-07-19 10:34:19 95

转载 剑指 矩形覆盖

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?图片来源 牛客网id:csbdong...

2019-07-19 09:52:34 97

空空如也

空空如也

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

TA关注的人

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