自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试必考真题-算法篇:将给出的链表中的节点每k个一组翻转,返回翻转后的链表。 如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样。

面试必考真题-算法篇 牛客网链表题目描述将给出的链表中的节点每k个一组翻转,返回翻转后的链表。如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样。你不能更改节点中的值,只能更改节点本身。要求空间复杂度 O(1)例如:给定的链表是1→2→3→4→5对于 k=2, 你应该返回 2→1→4→3→5对于 k=3, 你应该返回 3→2→1→4→5题目分析下面是Java代码import java.util.*;/* * public class ListNode { * in

2020-11-26 15:16:56 942

原创 面试必考真题-算法篇:给出一个仅包含字符‘(‘,‘)‘,‘{‘,‘}‘,‘[‘和‘]‘,的字符串,判断给出的字符串是否是合法的括号序列。

面试必考真题-算法篇 牛客网栈 字符串题目描述给出一个仅包含字符’(’,’)’,’{’,’}’,’[‘和’]’,的字符串,判断给出的字符串是否是合法的括号序列。括号必须以正确的顺序关闭,"()“和”()[]{}“都是合法的括号序列,但”(]“和”([)]"不合法。示例1输入 "["返回值 false示例2输入 "[]"返回值 true示例3输入 "[()]"返回值 true题目分析利用栈来进行判断,当遇到左括号

2020-11-25 12:01:05 2839

原创 面试必考真题-算法篇:对于一个给定的链表,返回环的入口节点,如果没有环,返回null。

面试必考真题-算法篇 牛客网链表 双指针题目描述对于一个给定的链表,返回环的入口节点,如果没有环,返回null拓展:你能给出不利用额外空间的解法么?题目分析1)首先判断是否有环,有环时,返回相遇的节点,无环,返回null2)有环的情况下,求链表的入环节点fast再次从头出发,每次走一步,slow从相遇点出发,每次走一步,再次相遇即为环入口点。下面是Java代码/** * Definition for singly-linked list. * class ListNode {

2020-11-24 13:09:42 653

原创 面试必考真题-算法篇:设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能。

面试必考真题-算法篇 牛客网模拟 LRU缓存结构题目描述设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构。get(key):返回key对应的value值。[要求] set和get方法的时间复杂度为O(1) 某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。 当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。 若opt=1,接下来两个整数x, y,表示s

2020-11-23 19:46:57 685

原创 面试必考真题-算法篇:给定一个链表,删除链表的倒数第n个节点并返回链表的头指针。

面试必考真题-算法篇 牛客网链表 双指针题目描述给定一个链表,删除链表的倒数第n个节点并返回链表的头指针例如,给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1->2->3->5.备注:题目保证n一定是有效的请给出请给出时间复杂度为\ O(n) O(n)的算法。题目分析按照之前寻找倒数第n个节点的思路进行查找。找的同时注意记录倒数第n个节点的前一个节点,找到后将其前一个节点指向其下一个节点即可。

2020-11-20 12:11:30 501

原创 面试必考真题-算法篇:给定一个二叉树,返回该二叉树层序遍历的结果。

面试必考真题-算法篇 牛客网树 DFS题目描述给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)题目分析层次遍历完事。注意每层遍历完之后不要清空ArrayList,而是要重新new 一个 ArrayList,如果清空了,返回值的结果也会清空。下面是Java代码import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNo

2020-11-19 10:55:45 760

原创 面试必考真题-算法篇:分别按照二叉树先序,中序和后序打印所有的节点。

面试必考真题-算法篇 牛客网栈 树 哈希题目描述分别按照二叉树先序,中序和后序打印所有的节点。题目分析:方法一直接按照前中后序遍历方法进行递归遍历,结果添加至二维数组即可。下面是Java代码import java.util.*;/* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */public class Solution

2020-11-18 11:46:49 885

原创 面试必考真题-算法篇:请实现有重复数字的有序数组的二分查找。 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。

面试必考真题-算法篇 牛客网二分查找题目描述请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。题目分析:方法一下面是Java代码import java.util.*;public class Solution { /** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @param a int整型一维数组 有序数组

2020-11-17 11:58:22 2400

原创 面试必考真题-算法篇:判断给定的链表中是否有环。

剑指offer算法题链表 双指针题目描述判断给定的链表中是否有环扩展:你能给出空间复杂度O(1)的解法么?方法一 双指针利用快慢指针,快指针走两步,慢指针走一步,如果两个指针相遇,则证明有环。下面是Java代码/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val =

2020-11-16 15:39:43 136

原创 剑指offer:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。

剑指offer算法题数组题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007题目分析下面是Java代码public class Solution { //统计逆序对的个数 int cnt = 0 ; public int InversePairs(int [] array) { if(array.lengt

2020-11-13 16:01:28 743 1

原创 剑指offer:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。

剑指offer算法题数组 回溯题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?题目分析1.从(0,0)开始走,每成功走一步标记当前位置为true,然后从当前位置往四个方向探索,返回值为1 + 4 个

2020-11-12 14:01:25 471

原创 剑指offer:请实现一个函数用来匹配包括‘.’和‘\*’的正则表达式。模式中的字符‘\.‘表示任意一个字符,而‘\*’表示它前面的字符可以出现任意次(包含0次)。

剑指offer算法题字符串 正则表达式题目描述请实现一个函数用来匹配包括‘.’和‘*’的正则表达式。模式中的字符’.'表示任意一个字符,而‘*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。题目分析:此为剑指offer的思路讨论2种:先看 * 再看 匹配前提:当pattern遍历完,return取决于str是否遍历完,str恰好遍历完才返回t

2020-11-12 13:38:48 1106

原创 剑指offer:给定一棵二叉搜索树,请找出其中的第k小的结点。

剑指offer算法题树题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。题目分析由于给定的是一颗二叉搜索树,而对于二叉搜索树来说,其中序遍历的结果就是该树升序排序后的结果。所以我们可以对该树进行中序遍历,然后找到第k个即可。方法一 递归下面是Java代码/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(i

2020-11-10 13:29:05 638 2

原创 剑指offer:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。

剑指offer算法题DFS 回溯题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如[abcesfcsadee] \left[ \begin{matrix} a & b & c &e \\ s & f & c & s\\ a & d

2020-11-05 15:16:12 626

原创 剑指offer:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。

剑指offer算法题数学 二分题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。题目分析首先,丑数是只包含质因子2,3,5的数,所以,丑数一定也是由丑数得到的。(比如6是丑数,那么12 = 2*6 也一定是丑数。)由于1是最小的丑数,那么从1开始,把2*1,3*1,5*1,进行比较,得出最小的就是1的下一个丑数,也就是2*1,这个时候,多了一个丑数‘2’,

2020-11-04 15:16:09 1374

原创 剑指offer:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。

剑指offer算法题链表题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。题目分析解题思路:1、遍历链表,复制每个结点,如复制结点A得到A1,将结点A1插到结点A后面;2、重新遍历链表,复制老结点的随机指针给新结点,如A1.random = A.random.next;3、拆分链表,将链表拆分为原

2020-11-03 11:20:25 127

空空如也

空空如也

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

TA关注的人

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